與此問題類似,我想向我的 pyspark DataFrame 添加一列,其中只包含一張空地圖。但是,如果我使用該問題的建議答案,則地圖型別為<null,null>,與此處發布的答案不同。
from pyspark.sql.functions import create_map
spark.range(1).withColumn("test", create_map()).printSchema()
root
|-- test: map(nullable = false)
| |-- key: null
| |-- value: null (valueContainsNull = false)
我需要一張空<string,string>地圖。我可以在 Scala 中這樣做:
import org.apache.spark.sql.functions.typedLit
spark.range(1).withColumn("test", typedLit(Map[String, String]())).printSchema()
root
|-- test: map(nullable = false)
| |-- key: string
| |-- value: string (valueContainsNull = true)
我怎樣才能在 pyspark 中做到這一點?我在 Databricks Runtime 7.3 LTS 上使用 Spark 3.01 和底層 Scala 2.12。我需要<string,string>地圖,否則我無法將資料框保存到鑲木地板:
AnalysisException: Parquet data source does not support map<null,null> data type.;
uj5u.com熱心網友回復:
您可以將地圖轉換為適當的型別,使用 來創建地圖create_map。
from pyspark.sql.functions import create_map
spark.range(1).withColumn("test", create_map().cast("map<string,string>")).printSchema()
root
|-- id: long (nullable = false)
|-- test: map (nullable = false)
| |-- key: string
| |-- value: string (valueContainsNull = true)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/378882.html
上一篇:是否可以將python物件存盤在pyspark資料幀或rdd中?
下一篇:了解pyspark中的jars
