PySpark读取多行多记录JSON文件的问题求助
PySpark读取多行多记录JSON文件的问题求助
我最近在使用PySpark读取JSON文件时遇到了棘手的问题,这个文件的格式比较特殊——每条记录的每个字段都单独占一行,而且包含多条独立的JSON记录。
示例文件内容:
{ "id" : "id001", "name" : "NAME001", "firstname" : "FIRSTNAME001" } { "id" : "NNI002", "name" : "NAME002", "firstname" : "FIRSTNAME002" } { "id" : "NNI003", "name" : "NAME003", "firstname" : "FIRSTNAME003" }
我期望读取后得到的结果是这样的:
| firstname | id | name |
|---|---|---|
| FIRSTNAME001 | id001 | NAME001 |
| FIRSTNAME002 | NNI002 | NAME002 |
| FIRSTNAME003 | NNI003 | NAME003 |
但我尝试了几种方法都没成功:
- 直接用
spark.read.json("file.json"),结果直接报错 - 添加
multiline=true选项,也就是spark.read.option("multiline","true").json("file.json"),结果只读到了第一条记录:
+------------+-----+-------+ | firstname| id| name| +------------+-----+-------+ |FIRSTNAME001|id001|NAME001| +------------+-----+-------+
- 如果把每条记录压缩成单独一行,比如下面这种格式,用
spark.read.json("file.json")就能正常读取:
{ "id" : "id001", "name" : "NAME001", "firstname" : "FIRSTNAME001" } { "id" : "NNI002", "name" : "NAME002", "firstname" : "FIRSTNAME002" } { "id" : "NNI003", "name" : "NAME003", "firstname" : "FIRSTNAME003" }
可问题是这个文件有1000万行数据,手动或者批量转换格式根本不现实。
有没有大佬能给我出出主意?非常感谢!
备注:内容来源于stack exchange,提问作者Steuv
相关产品推荐
相关产品推荐

