无法在 Databricks 中使用 pyspark 读取 json 文件
Posted
技术标签:
【中文标题】无法在 Databricks 中使用 pyspark 读取 json 文件【英文标题】:Unable to read json file with pyspark in Databricks 【发布时间】:2019-12-24 16:51:37 【问题描述】:我正在使用 pyspark 从 JSON 文件创建 dataframe。
JSON文件的结构如下:
[
"Volcano Name": "Abu",
"Country": "Japan",
"Region": "Honshu-Japan",
"Location":
"type": "Point",
"coordinates": [
131.6,
34.5
]
,
"Elevation": 571,
"Type": "Shield volcano",
"Status": "Holocene",
"Last Known Eruption": "Unknown",
"id": "4cb67ab0-ba1a-0e8a-8dfc-d48472fd5766"
,
"Volcano Name": "Acamarachi",
"Country": "Chile",
"Region": "Chile-N",
"Location":
"type": "Point",
"coordinates": [
-67.62,
-23.3
]
我将使用以下代码行读取文件:
myjson = spark.read.json("/FileStore/tables/sample.json")
但是,我不断收到以下错误消息:
激发工作 myjson:pyspark.sql.dataframe.DataFrame _corrupt_record:字符串
谁能告诉我我可能做错了什么?
是json文件结构有问题吗?
【问题讨论】:
【参考方案1】:好像你的 JSON 是多行 Json,为什么问题出在下面,要解决这个问题是代码 sn-p,
myjson = spark.read.option("multiline", "true").option("mode", "PERMISSIVE")
.json("/FileStore/tables/sample.json")
希望这能解决问题。
【讨论】:
阿杰,感谢您与我们联系。我添加了您的命令,它似乎可以工作,但是我现在遇到了重复列的问题。得到错误:Found duplicate column(s) in the data schema: `country`;
有没有办法让即使有重复的列也能创建数据框?如果没有,你知道删除重复列的代码
只是想指出没有任何重复的列。所以我不知道为什么它说Found duplicate column(s) in the data schema: `country`;
是的,您的数据中没有重复的列,不知道为什么会这样说
完整的 json 文件可以在这里找到github.com/Azure-Samples/azure-cosmos-db-sample-data/blob/…
让我们continue this discussion in chat。以上是关于无法在 Databricks 中使用 pyspark 读取 json 文件的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Databricks 中使用 pyspark 读取 json 文件
无法在 databricks 运行时版本 7 中使用 shell 命令访问 /dbfs/FileStore
无法在 azure databricks 中使用 spark 读取 csv 文件