gpt4 book ai didi

python - 如何从 Azure Data Lake Store 读取 Azure Databricks 中的 JSON 文件

转载 作者:行者123 更新时间:2023-12-02 07:35:23 25 4
gpt4 key购买 nike

我使用 Azure Data Lake Store 来存储具有以下 JSON 的简单 JSON 文件:

{
"email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0a5f796f78796f676b63664a6e65676b636424696567" rel="noreferrer noopener nofollow">[email protected]</a>",
"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|
+---------------------+------------+
|Usersemai<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a1cde1c5ceccc0c8cf8fc2cecc" rel="noreferrer noopener nofollow">[email protected]</a>|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

我必须在网址开头添加 /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)

也许可能更容易?但这目前有效。

关于python - 如何从 Azure Data Lake Store 读取 Azure Databricks 中的 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52029142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com