簡體   English   中英

讀取 pyspark 中的 JSON 文件,在 python 中創建模式結構類型

[英]Read JSON file in pyspark to create schema struct type in python

這是在 azure 數據塊上運行的 Microsoft Azure 數據湖中。 我正在嘗試讀取一個我沒有創建的 JSON 文件,它具有我可以讀取的 CSV 的架構或名稱和類型信息,但在 CSV 中沒有 header。

df1 = spark.read.json('/mnt/jsontest/...PATH.../SalesTable.cdm.json', multiLine=True)
df1.printSchema() 

加載 pyspark DataFrame 並打印出來。

我想要的是可用於讀取 CSV 文件的 Struct Schema。 我無法獲得定義數組的 dataframe,我可以循環並創建結構元素。

root
 |-- definitions: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- displayName: string (nullable = true)
 |    |    |-- entityName: string (nullable = true)
 |    |    |-- hasAttributes: array (nullable = true)
 |    |    |    |-- element: struct (containsNull = true)
 |    |    |    |    |-- dataFormat: string (nullable = true)
 |    |    |    |    |-- name: string (nullable = true)
 |    |    |    |    |-- purpose: string (nullable = true)
 |-- imports: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- corpusPath: string (nullable = true)
 |-- jsonSchemaSemanticVersion: string (nullable = true)

如果我可以循環 hasAttributes,我將擁有我認為構成模式結構的數據格式和名稱字段。 我也讀不到json,直接讀成json,一直是DataFrame,如果我嘗試用普通的python3讀,找不到文件。 遍歷 json 到達我想要的字段的最佳最正常方法是什么?

大多數示例都是這樣做的 - new_schema = StructType.fromJson(first_json) 但是因為我的 JSON 沒有字段,所以我收到錯誤消息。 hasAttributes 是字段通常是或通常包含相同信息的地方。

任何有關如何創建結構或將此 json 讀取為 json 或格式化(分解/展平)DataFrame 的幫助都會很棒。 我認為 pyspark 中必須有更簡單的東西才能在 base python3 中做如此簡單的事情。

暫無
暫無

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

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