小编Mas*_*RDA的帖子

在 pyspark 中读取嵌套的 JSON 文件

我想从 hdfs 中的 json 文件创建一个 pyspark 数据框。

json 文件具有以下内容:

{“产品”:{“0”:“台式电脑”,“1”:“平板电脑”,“2”:“iPhone”,“3”:“笔记本电脑”},“价格”:{“0”:700 , "1": 250, "2": 800, "3": 1200 } }

然后,我使用 pyspark 2.4.4 读取此文件 df = spark.read.json("/path/file.json")

所以,我得到这样的结果:

df.show(truncate=False)
+---------------------+---------------------------------+
|Price                |Product                          |
+---------------------+---------------------------------+
|[700, 250, 800, 1200]|[Desktop, Tablet, Iphone, Laptop]|
+---------------------+---------------------------------+
Run Code Online (Sandbox Code Playgroud)

但我想要一个具有以下结构的数据框:

+-------+--------+
|Price  |Product |
+-------+--------+
|700    |Desktop | 
|250    |Tablet  |
|800    |Iphone  |
|1200   |Laptop  |
+-------+--------+
Run Code Online (Sandbox Code Playgroud)

如何使用 pyspark 获取具有先前结构的数据框?

我尝试使用爆炸,df.select(explode("Price"))但出现以下错误:

---------------------------------------------------------------------------
Py4JJavaError                             Traceback (most recent call last)
/usr/lib/spark/python/pyspark/sql/utils.py in deco(*a, **kw)
     62         try:
---> …
Run Code Online (Sandbox Code Playgroud)

json pyspark

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

json ×1

pyspark ×1