我尝试使用this question将rdd对象转换为spark中的dataframe。我的用例中的类包含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
有人可以用一个具体的例子来帮助我;我正在使用带有scala的spark 1.6。 谢谢
答案 0 :(得分:2)
您的问题是案例类限制为22个字段。
您需要将案例类定义为更结构化的数据类型,因此只有22个顶级字段(但其中一些可能是案例类)。
完成此操作后,您可以使用Row
(其本身不能与104字段进行模式匹配,您必须使用row(0), row(1), ..., row(103)
)来构建MyClass
。