我正在使用Spark 1.5.0,在从我的rdd创建数据帧时遇到了一个问题。
代码如下:
case class MyC (myclass: MyClass)
val df = rdd.map {t => MyC(t)}.toDF("cust")
df.show()
错误信息如下:
线程"main"异常java.lang.UnsupportedOperationException:不支持MyClass类型的架构
Spark使用反射来推断数据框架模式,但不能对任意类这样做。我不确定我是否能给出一个比Spark文档更好的答案,这里有一个章节专门讨论这个问题。
具体来说,问题是Spark可以推断模式的类型数量有限。int、string、Seqs/Arrays都支持(以及包含这些类型元素的case类),但任意类MyClass
不支持。