代码:
val dfArr = df.map(row => {
...
...
val DF = spark.createDataFrame(rdd, schema)
DF // 返回 dataframe
})
报错:
error: Unable to find encoder for type org.apache.spark.sql.DataFrame. An implicit Encoder[org.apache.spark.sql.DataFrame] is needed to store org.apache.spark.sql.DataFrame instances in a Dataset. Primitive types (Int, String, etc) and Product types (case classes) are supported by importing spark.implicits._ Support for serializing other types will be added in future releases.
将 df.take(n)到 driver 不会报错,不 take 的话报错,原因应该是序列化的时候没找合适的 encoder ,奇怪的是我在创建 df 的时候已经给了 schema.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.