如何从 Azure Data Lake Store 读取 Azure Databricks 中的 JSON 文件
How to read a JSON file in Azure Databricks from Azure Data Lake Store
我正在使用 Azure Data Lake Store 存储简单的 JSON 文件,其中 JSON:
{
"email": "Usersemail@domain.com",
"id": "823956724385"
}
json 文件名为 myJson1.json
。 Azure Data Lake Store 已成功安装到 Azure Databricks。
我能够通过
成功加载 JSON 文件
df = spark.read.option("multiline", "true").json(fi.path)
fi.path
是一个 FileInfo
对象,它是上面的 MyJson1.json
文件。
当我这样做时
spark.read.option("multiline", "true").json(fi.path)
df.show()`
我将 JSON 对象正确打印出来(DataFrame)为
+---------------------+------------+
| email| id|
+---------------------+------------+
|Usersemail@domain.com|823956724385|
+---------------------+------------+
我想要做的是,用 json.load(filename)
加载 JSON 文件,以便能够使用 Python 中的 JSON 对象。
当我这样做时
with open('adl://.../myJson1.json', 'r') as file:
jsonObject0 = json.load(file)
然后我得到以下错误
[Errno 2] No such file or directory 'adl://.../myJson1.json'
当我尝试时(挂载点是正确的,我可以列出文件,并且 spark.read 到 DataFrame 中)
jsonObject = json.load("/mnt/adls/data/myJson1.json")
然后我得到以下错误
'str' object has no attribute 'read'
我不知道还可以做什么来加载 JSON。我的目标是读取 JSON 对象并遍历键及其值。
诀窍是对文件使用以下语法 url
/dbfs/mnt/adls/data/myJson1.json
我不得不在 url.
的开头添加 /dbfs/...
分别用 /dbfs/
替换 dbfs:/
那我可以用
with open('/dbfs/mnt/adls/ingress/marketo/update/leads/leads-json1.json', 'r') as f:
data = f.read()
jsonObject = json.loads(data)
也许更容易?但这暂时有效。
我正在使用 Azure Data Lake Store 存储简单的 JSON 文件,其中 JSON:
{
"email": "Usersemail@domain.com",
"id": "823956724385"
}
json 文件名为 myJson1.json
。 Azure Data Lake Store 已成功安装到 Azure Databricks。
我能够通过
成功加载 JSON 文件df = spark.read.option("multiline", "true").json(fi.path)
fi.path
是一个 FileInfo
对象,它是上面的 MyJson1.json
文件。
当我这样做时
spark.read.option("multiline", "true").json(fi.path)
df.show()`
我将 JSON 对象正确打印出来(DataFrame)为
+---------------------+------------+
| email| id|
+---------------------+------------+
|Usersemail@domain.com|823956724385|
+---------------------+------------+
我想要做的是,用 json.load(filename)
加载 JSON 文件,以便能够使用 Python 中的 JSON 对象。
当我这样做时
with open('adl://.../myJson1.json', 'r') as file:
jsonObject0 = json.load(file)
然后我得到以下错误
[Errno 2] No such file or directory 'adl://.../myJson1.json'
当我尝试时(挂载点是正确的,我可以列出文件,并且 spark.read 到 DataFrame 中)
jsonObject = json.load("/mnt/adls/data/myJson1.json")
然后我得到以下错误
'str' object has no attribute 'read'
我不知道还可以做什么来加载 JSON。我的目标是读取 JSON 对象并遍历键及其值。
诀窍是对文件使用以下语法 url
/dbfs/mnt/adls/data/myJson1.json
我不得不在 url.
的开头添加/dbfs/...
分别用 /dbfs/
替换 dbfs:/
那我可以用
with open('/dbfs/mnt/adls/ingress/marketo/update/leads/leads-json1.json', 'r') as f:
data = f.read()
jsonObject = json.loads(data)
也许更容易?但这暂时有效。