Pyspark中不带逗号分隔符的多行JSON

3lxsmp7m  于 2023-03-19  发布在  Apache
关注(0)|答案(1)|浏览(108)

我正在尝试使用pyspark读取一个多行JSON文件,没有逗号分隔。我对pyspark不太适应。我想用简单的python来做,但是我在使用16GB的RAM和14GB的文件大小时遇到了内存错误。

55ooxyrt

55ooxyrt1#

您的多行JSON文件:

[
{"name":"Wer","address":"TN"}
{"name":"Yin","address":"KL"}
]

必要 Package

from pyspark.sql.functions import from_json

1.将json文件作为文本文件读取

df_1 = spark.read.text("path/to/file.json")

1.过滤不需要的记录

filter_condition = (col("value") != "[") & (col("value") != "]")
df_2 = df_1.filter(filter_condition)

1.将JSON字符串转换为StructType格式

json_schema = "struct<name:string, address:string>"
df_3 = df_2.withColumn("value", from_json("value", json_schema))

1.抽出所有列

df_3.selectExpr("value.*").show()

输出

+----+-------+
|name|address|
+----+-------+
| Wer|     TN|
| Yin|     KL|
+----+-------+

相关问题