【发布时间】:2020-12-18 03:30:32
【问题描述】:
我一直在尝试从列表列表中提取列,但无法想象如何做到这一点。我对火花相当陌生。在 Spark 2.4.3 上运行 pyspark。
我有一个这样组织的 json:
{ "meta" : { ... },
"data" :
[[ "a", 0, null, "{ }"],
[ "b", 0, null, "{ }"],
[ "c", 0, null, "{ }"],
] }
我想将“数据”部分放入列中,例如
+------+------+------+------+
| col1 | col2 | col3 | col4 |
+------+------+------+------+
| a | 0 | None | "{ }"|
| b | 0 | None | "{ }"|
| c | 0 | None | "{ }"|
我读入了我的数据框,printSchema() 显示了这一点。
root
|-- data: array (nullable = true)
| |-- element: array (containsNull = true)
| | |-- element: string (containsNull = true)
|-- meta: struct (nullable = true)
| |-- view: struct (nullable = true)
| | |-- approvals: array (nullable = true) ...
我的粗略形状是 70 列 x 650k 行。
我能够爆炸 df 得到 data 部分,但被困在那里。
【问题讨论】:
-
您可以通过
getItem函数访问数组的各个元素,如下所示。 stackoverflow.com/questions/47874037/…
标签: dataframe apache-spark pyspark apache-spark-sql