簡體   English   中英

如何從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]沒有這樣的文件或目錄'adl://.../myJson1.json'

當我嘗試時(掛載點正確,我可以列出文件,也可以通過spark.read進入DataFrame)

    jsonObject = json.load("/mnt/adls/data/myJson1.json")

然后我得到以下錯誤

'str'對象沒有屬性'read'

我不知道該怎么辦才能加載JSON。 我的目標是讀取JSON對象並遍歷鍵及其值。

訣竅是對文件url使用以下語法

/dbfs/mnt/adls/data/myJson1.json

我不得不添加/dbfs/...分別代替dbfs://dbfs/在URL的開頭。

那我可以用

    with open('/dbfs/mnt/adls/ingress/marketo/update/leads/leads-json1.json', 'r') as f:
      data = f.read()

    jsonObject = json.loads(data)

也許更容易? 但這暫時有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM