【发布时间】:2017-08-17 06:16:09
【问题描述】:
我想向数据框添加一个结构列,但该结构有超过 100 个字段。
我了解到 case class 可以更改为 struct 列,但 case class 的字段限制不超过 22 个(在线 spark 为 1.6.3,scala 为 2.10.4)。
普通班可以这样做吗?我必须实现哪些功能或接口?
还有一个“org.apache.spark.sql.functions.struct”,但是好像不能设置struct的字段名。
先谢谢了。
【问题讨论】:
-
如果可能,请选择 UDF。stackoverflow.com/questions/33826495/…
-
我不明白你的意思是不能设置结构的字段名。你可以这样做 val fields =new StructField("name", StringType, false) :: new StructField("age", IntegerType, false) :: List(new StructField("age", IntegerType, false))
-
谢谢巴拉吉雷迪。现在我已经有一个大约有 40 列的数据框,并且想添加一个类型为 struct 的新列。你的意思是我必须定义一个包含现有 40 个字段的新结构和包含 100 多个字段的新结构?
-
较新版本的 spark 没有案例类的 22 个字段限制。 :)
标签: scala apache-spark apache-spark-sql case-class