所以我有一个变量data
是RDD[Array[String]]
. 我想迭代它并比较相邻的元素。为此,我必须从 RDD 创建一个数据集。
我尝试以下,sc
是我的SparkContext
:
import org.apache.spark.sql.SQLContext
val sqc = new SQLContext(sc)
val lines = sqc.createDataset(data)
我得到以下两个错误:
错误:(12, 34) 无法找到存储在数据集中的类型的编码器。通过导入 sqlContext.implicits 支持原始类型(Int、String 等)和产品类型(案例类)。未来版本中将添加对序列化其他类型的支持。val 行 = sqc.createDataset(data)
错误:(12, 34) 方法 createDataset 的参数不足: (隐式证据 $4: org.apache.spark.sql.Encoder[Array[String]])org.apache.spark.sql.Dataset[Array[String]] . 未指定值参数evidence$4。val 行 = sqc.createDataset(data)
当然,我知道我需要传递一个编码器参数,但是,在这种情况下会是什么以及如何导入编码器?当我尝试自己时,它说这createDataset
不会作为论据。
有类似的问题,但他们没有回答如何使用编码器参数。如果我的 RDD 是 aRDD[String]
它工作得很好,但是在这种情况下它是RDD[Array[String]]
.