嗨@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["自定義"])
注意,在這個例子中,我們使用JSON。轉儲方法字典的自定義元數據轉換為一個JSON字符串,可以嵌入到Avro模式定義。
嗨@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["自定義"])
注意,在這個例子中,我們使用JSON。轉儲方法字典的自定義元數據轉換為一個JSON字符串,可以嵌入到Avro模式定義。