2015-07-03 4 views
1

Я создал два разных ноутбука Scala в databricks. Один из них - это расчет по темам на основе модели LDA, а другой - новый новый ноутбук без каких-либо предварительных расчетов.Databricks Apache Spark 1.4: Задача не сериализуема (Scala)

Когда я запускаю следующий код в 1-й ноутбук:

val b = sc.parallelize(Array(1,2,3)) 
val c: Int = 4 
def add (x:org.apache.spark.rdd.RDD[Int]) = { x.map(n => n + c) } 

add(b).collect() 

я получаю «Задача не сериализации» ошибка. Когда я запускаю одну и ту же программу в другом ноутбуке, она идет без проблем.

Может ли кто-нибудь предложить что-нибудь?

org.apache.spark.SparkException: Task not serializable 
    at org.apache.spark.util.ClosureCleaner$.ensureSerializable(ClosureCleaner.scala:315) 
    at org.apache.spark.util.ClosureCleaner$.org$apache$spark$util$ClosureCleaner$$clean(ClosureCleaner.scala:305) 
    at org.apache.spark.util.ClosureCleaner$.clean(ClosureCleaner.scala:132) 
    at org.apache.spark.SparkContext.clean(SparkContext.scala:1891) 
    at org.apache.spark.rdd.RDD$$anonfun$map$1.apply(RDD.scala:294) 
    at org.apache.spark.rdd.RDD$$anonfun$map$1.apply(RDD.scala:293) 
    at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:148) 
    at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:109) 
    at org.apache.spark.rdd.RDD.withScope(RDD.scala:286) 
    at org.apache.spark.rdd.RDD.map(RDD.scala:293) 
    at Notebook.add(<console>:71) 
Caused by: java.io.NotSerializableException: org.apache.spark.mllib.clustering.LDA 
Serialization stack: 
    - object not serializable (class: org.apache.spark.mllib.clustering.LDA, value: [email protected]) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd814.$read$$iwC$$iwC$$iwC$$iwC, name: lda, type: class org.apache.spark.mllib.clustering.LDA) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd814.$read$$iwC$$iwC$$iwC$$iwC, l[email protected]6c9743ba) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd814.$read$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd814.$read$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd814.$read$$iwC$$iwC$$iwC, [email protected]799b) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd814.$read$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd814.$read$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd814.$read$$iwC$$iwC, [email protected]) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd814.$read$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd814.$read$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd814.$read$$iwC, [email protected]) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd814.$read, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd814.$read$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd814.$read, [email protected]) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8154.$read$$iwC$$iwC$$iwC, name: $VAL2947, type: class linee339bfc6d4e74d779737c9ccd8c21fd814.$read) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8154.$read$$iwC$$iwC$$iwC, [email protected]85bf4) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8154.$read$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8154.$read$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8154.$read$$iwC$$iwC, [email protected]) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8154.$read$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8154.$read$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8154.$read$$iwC, [email protected]) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8154.$read, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8154.$read$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8154.$read, [email protected]) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $VAL2958, type: class linee339bfc6d4e74d779737c9ccd8c21fd8154.$read) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74d779737c9ccd8c21fd8155.$r[email protected]45b864dc) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74d779737c9ccd8c21fd81[email protected]5e9e8fc8) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74d779737c9ccd8c2[email protected]1e884b86) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74d779737c9c[email protected]5e402ceb) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74d7797[email protected]25c3414e) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74[email protected]229fc9e7) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6[email protected]3ece12aa) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC, linee33[email protected]7e3871b5) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC, li[email protected]4e4a1d12) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC, [email protected]adcd4) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC, [email protected]) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC, [email protected]) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8155.$read, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read, [email protected]) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $VAL2973, type: class linee339bfc6d4e74d779737c9ccd8c21fd8155.$read) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74d779737c9ccd8c21fd8158.$r[email protected]44fb0e14) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74d779737c9ccd8c21fd81[email protected]4e127fe) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74d779737c9ccd8c2[email protected]5468a425) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74d779737c9c[email protected]4442dbb1) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74d7797[email protected]17cf077d) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74[email protected]612d11b5) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6[email protected]4aee6cf4) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC, linee33[email protected]6987d7f7) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC, li[email protected]446be1f9) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC, [email protected]afbd8) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC, [email protected]) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC, [email protected]) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8158.$read, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read, [email protected]) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $VAL2987, type: class linee339bfc6d4e74d779737c9ccd8c21fd8158.$read) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74d779737c9ccd8c21fd8161.$r[email protected]2da782a3) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74d779737c9ccd8c21fd81[email protected]79a9a8ca) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74d779737c9ccd8c2[email protected]536a7276) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74d779737c9c[email protected]b885215) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74d7797[email protected]14ccdc86) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6d4e74[email protected]53d95ae) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
    - object (class linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC, linee339bfc6[email protected]2741a6e0) 
    - field (class: linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC, name: $iw, type: class linee339bfc6d4e74d779737c9ccd8c21fd8161.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC) 
+0

Мое первое предложение заключается в том, что вы обеспечиваете полную трассировку стека (или соответствующие выдержки) –

+0

право. Добавлена ​​1-я половина (не подходит полностью) .. – dd210

ответ

1

Прежде всего, это ошибка в искровой консоли (аналогичная проблема here). Он не будет воспроизводиться в вашем фактическом коде scala, представленном spark-submit. Проблема в закрытии: map(n => n + c). Spark должен сериализовать и послать каждому работнику значение c, но c живет в каком-то обернутом объекте в консоли. Поведение этого объекта очень странно иногда. Например, когда я впервые запускаю ваш пример, у меня были те же ошибки. Затем я использовал val c = 4 вместо val c: Int = 4 У меня нет ошибок.

К сожалению, я не знаю точного обходного пути здесь. Все, что я могу предложить вам, - это обернуть все, что вы хотите использовать внутри преобразований rdd (карта, фильтр и т. Д.) В объекте самостоятельно. Например:

scala> val b = sc.parallelize(Array(1,2,3)) 
b: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at <console>:21 

scala> object Foo { val c: Int = 4} 
defined module Foo 

scala> def add (x:org.apache.spark.rdd.RDD[Int]) = { x.map(n => n + Foo.c) } 
add: (x: org.apache.spark.rdd.RDD[Int])org.apache.spark.rdd.RDD[Int] 

scala> add(b).collect() 
.... 
res0: Array[Int] = Array(5, 6, 7) 
+0

Спасибо. Теперь он становится немного яснее. И что делать, если я хочу использовать как «c» какой-то другой массив, вычисленный ранее? – dd210

+0

Лучший способ заключается в том, чтобы обернуть его в структуру широковещательных данных: https://spark.apache.org/docs/latest/programming-guide.html#broadcast-variables. Но если это результат вычисления над rdd, вы можете оставить его как rdd, присоединиться к другому rdd и использовать его. Или вы можете создать объект класса класса с полем, равным вашему массиву, и попытаться его сериализовать (аналогично тому, что я предлагаю в ответе). – ipoteka

+0

Есть ли причина, по которой эта трансляция может не работать? Я рассчитал темы для документов по модели LDA, получил массив тем и теперь хочу использовать этот массив в дальнейших расчетах. Но я не могу ни передавать, ни обертывать объект - в любом случае я получаю ошибку «не сериализуемая». – dd210

Смежные вопросы