取消
顯示的結果
而不是尋找
你的意思是:

添加自定義元數據與pyspark avro文件

zak
新的貢獻者二世

你好,

我需要添加一個自定義元數據到一個avro文件。avro文件包含的數據。

我們嚐試使用“選項”在寫函數但不是沒有產生任何錯誤。

df.write.format .option (“avro (“avro”)。編解碼器”、“時髦的”).option (“頭”、“metadata_key: metadata_value”).mode(“覆蓋”).save (“/ tmp / avro_with_metadata”)

我尋求一個解決方案中添加自定義的元數據到數據avro文件。

謝謝,

紮卡裏亞

1接受解決方案

接受的解決方案

Kaniz
社區經理
社區經理

嗨@zakaria belamri,您可以添加自定義元數據在PySpark Avro文件通過創建一個Avro模式和自定義元數據字段傳遞它DataFrameWriter作為一個選項。這裏有一個例子的代碼片段演示了如何做到這一點:

從pyspark。sql進口SparkSession pyspark.sql進口。函數作為f#創建SparkSession火花= SparkSession.builder.appName (AvroCustomMetadata) .getOrCreate() #創建示例DataFrame df = spark.range (10)。withColumn(“價值”,F.lit (“hello”)) #定義定製的元數據字段作為一個字典custom_metadata = {“key1”:“value1”、“key2”:“value2”} #創建Avro模式和自定義元數據字段avro_schema = " "{“類型”:“記錄”、“名稱”:“ExampleRecord”、“字段”:[{" name ": " id ",“類型”:“長”},{“名稱”:“價值”、“類型”:“字符串”}],“元數據”:{“自定義”:% s}}”“% (json.dumps (custom_metadata)) #寫DataFrame df.write.format Avro文件自定義元數據(“Avro”)。選項(“avroSchema”, avro_schema) .save (example.avro) # Avro文件讀取和顯示自定義元數據read_df = spark.read.format .load (“Avro”) (“example.avro”)打印(read_df.schema.metadata["自定義"])
  • 在本例中,我們創建一個示例DataFrame十行和一個值列。
  • 然後,我們定義一個字典的自定義元數據字段我們想添加Avro模式。
  • 我們創建一個Avro模式與這些自定義元數據字段通過嵌入模式的術語表的元數據字段定義。

  • 然後,我們使用DataFrameWriter寫DataFrame Avro文件的自定義元數據包含在模式。
  • 最後,我們使用DataFrameReader讀取Avro文件和顯示自定義元數據。

注意,在這個例子中,我們使用JSON。轉儲方法字典的自定義元數據轉換為一個JSON字符串,可以嵌入到Avro模式定義。

在原帖子查看解決方案

4回複4

Kaniz
社區經理
社區經理

嗨@zakaria belamri,您可以添加自定義元數據在PySpark Avro文件通過創建一個Avro模式和自定義元數據字段傳遞它DataFrameWriter作為一個選項。這裏有一個例子的代碼片段演示了如何做到這一點:

從pyspark。sql進口SparkSession pyspark.sql進口。函數作為f#創建SparkSession火花= SparkSession.builder.appName (AvroCustomMetadata) .getOrCreate() #創建示例DataFrame df = spark.range (10)。withColumn(“價值”,F.lit (“hello”)) #定義定製的元數據字段作為一個字典custom_metadata = {“key1”:“value1”、“key2”:“value2”} #創建Avro模式和自定義元數據字段avro_schema = " "{“類型”:“記錄”、“名稱”:“ExampleRecord”、“字段”:[{" name ": " id ",“類型”:“長”},{“名稱”:“價值”、“類型”:“字符串”}],“元數據”:{“自定義”:% s}}”“% (json.dumps (custom_metadata)) #寫DataFrame df.write.format Avro文件自定義元數據(“Avro”)。選項(“avroSchema”, avro_schema) .save (example.avro) # Avro文件讀取和顯示自定義元數據read_df = spark.read.format .load (“Avro”) (“example.avro”)打印(read_df.schema.metadata["自定義"])
  • 在本例中,我們創建一個示例DataFrame十行和一個值列。
  • 然後,我們定義一個字典的自定義元數據字段我們想添加Avro模式。
  • 我們創建一個Avro模式與這些自定義元數據字段通過嵌入模式的術語表的元數據字段定義。

  • 然後,我們使用DataFrameWriter寫DataFrame Avro文件的自定義元數據包含在模式。
  • 最後,我們使用DataFrameReader讀取Avro文件和顯示自定義元數據。

注意,在這個例子中,我們使用JSON。轉儲方法字典的自定義元數據轉換為一個JSON字符串,可以嵌入到Avro模式定義。

Kaniz
社區經理
社區經理

嗨@zakaria belamri(客戶),請別忘了點擊“選擇最佳”按鈕時提供的信息幫助解決你的問題。

Kaniz
社區經理
社區經理

謝謝你!@zakaria belamri !如果你有任何其他的問題或問題,請提出來。祝你有美好的一天!

zak
新的貢獻者二世

謝謝你的回答,是很有幫助的。

我請additionnal問題,是否可以添加一個avro binnary metada json avro_schema裏麵?

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map