我正在尝试使用pyspark读取一个多行JSON文件,没有逗号分隔。我对pyspark不太适应。我想用简单的python来做,但是我在使用16GB的RAM和14GB的文件大小时遇到了内存错误。
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| +----+-------+
1条答案
按热度按时间55ooxyrt1#
您的多行JSON文件:
必要 Package
1.将json文件作为文本文件读取
1.过滤不需要的记录
1.将JSON字符串转换为StructType格式
1.抽出所有列
输出