【发布时间】:2018-05-06 09:30:39
【问题描述】:
我在 Spark 2.2.0 和 Scala 2.11.8 中有以下 DataFrame。
+----------+-------------------------------+
|item | other_items |
+----------+-------------------------------+
| 111 |[[444,1.0],[333,0.5],[666,0.4]]|
| 222 |[[444,1.0],[333,0.5]] |
| 333 |[] |
| 444 |[[111,2.0],[555,0.5],[777,0.2]]|
我想得到以下DataFrame:
+----------+-------------+
|item | other_items |
+----------+-------------+
| 111 | 444 |
| 222 | 444 |
| 444 | 111 |
所以,基本上,我需要为每一行从other_items 中提取第一个item。另外,我需要忽略那些在other_products 中有空数组[] 的行。
我该怎么做?
我尝试了这种方法,但它没有给我预期的结果。
result = df.withColumn("other_items",$"other_items"(0))
printScheme 给出以下输出:
|-- item: string (nullable = true)
|-- other_items: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- _1: string (nullable = true)
| | |-- _2: double (nullable = true)
【问题讨论】:
标签: scala apache-spark spark-dataframe