rdd对象中的数据框参数太多
Posted
技术标签:
【中文标题】rdd对象中的数据框参数太多【英文标题】:dataframe too many arguments in the rdd object 【发布时间】:2017-04-03 11:17:47 【问题描述】:我尝试使用this question 将 rdd 对象转换为 spark 中的数据帧。我用例中的类包含 100 多个参数(列)
case class MyClass(val1: String, ..., val104: String )
val df = rdd.map(
case Row(val1: String, ..., val104: String) => MyClass(val1, ..., val104)
).toDF("col1_name", ..., "col104_name")
我收到此错误:unapply 模式的参数太多,最大值 = 22
谁能帮我举个具体的例子;我正在使用 spark 1.6 和 scala 。 谢谢你
【问题讨论】:
你可以参考这个问题***.com/questions/41799147/… 我读过这个问题,但他们需要一个 csv 文件,但我没有使用它;我正在使用 xl3 文件 case 类的问题是它在 scala 版本 中有 22 个字段的限制 【参考方案1】:您的问题是案例类限制为 22 个字段。
您需要将案例类定义为更结构化的数据类型,以便只有 22 个***字段(但其中一些可能再次成为案例类)。
完成此操作后,您可以使用 Row
(它本身无法与 104 个字段进行模式匹配,您必须使用 row(0), row(1), ..., row(103)
)来构建您的 MyClass
。
【讨论】:
以上是关于rdd对象中的数据框参数太多的主要内容,如果未能解决你的问题,请参考以下文章
处理存储在 RDD [String] 中的记录时,spark collect 方法花费了太多时间
如何将 RDD [GenericRecord] 转换为 scala 中的数据框?