我面临着如何将多值列(即List[String]
)拆分为单独的行的问题。如何使用类型化数据集将多值列拆分为单独的行?
初始数据集有以下几种类型:Dataset[(Integer, String, Double, scala.List[String])]
+---+--------------------+-------+--------------------+
| id| text | value | properties |
+---+--------------------+-------+--------------------+
| 0|Lorem ipsum dolor...| 1.0|[prp1, prp2, prp3..]|
| 1|Lorem ipsum dolor...| 2.0|[prp4, prp5, prp6..]|
| 2|Lorem ipsum dolor...| 3.0|[prp7, prp8, prp9..]|
将所得的数据集应该有以下几种类型:
Dataset[(Integer, String, Double, String)]
和properties
应拆分使得:
+---+--------------------+-------+--------------------+
| id| text | value | property |
+---+--------------------+-------+--------------------+
| 0|Lorem ipsum dolor...| 1.0| prp1 |
| 0|Lorem ipsum dolor...| 1.0| prp2 |
| 0|Lorem ipsum dolor...| 1.0| prp3 |
| 1|Lorem ipsum dolor...| 2.0| prp4 |
| 1|Lorem ipsum dolor...| 2.0| prp5 |
| 1|Lorem ipsum dolor...| 2.0| prp6 |
哦,不。这是RDD API吗?为什么人们希望在数据集时代这样做? –
我认为RDD和DataSet [有他们的地方](https://databricks.com/blog/2016/07/14/a-tale-of-three-apache-spark-apis-rdds-dataframes-and-datasets .html),尽管在这种情况下我同意直接使用DataSet是一种更好的方法。 –