0
A
回答
2
您必須用新模式替換列。 ArrayType採用兩個參數elementType和containsNull。
from pyspark.sql.types import *
from pyspark.sql.functions import udf
x = [("a",["b","c","d","e"]),("g",["h","h","d","e"])]
schema = StructType([StructField("key",StringType(), nullable=True),
StructField("values", ArrayType(StringType(), containsNull=False))])
df = spark.createDataFrame(x,schema = schema)
df.printSchema()
new_schema = ArrayType(StringType(), containsNull=True)
udf_foo = udf(lambda x:x, new_schema)
df.withColumn("values",udf_foo("values")).printSchema()
root
|-- key: string (nullable = true)
|-- values: array (nullable = true)
| |-- element: string (containsNull = false)
root
|-- key: string (nullable = true)
|-- values: array (nullable = true)
| |-- element: string (containsNull = true)
相關問題
- 1. 更改列的數據類型在PySpark數據幀
- 2. Pyspark:更改嵌套列數據類型
- 3. 更改數據類型在Pyspark
- 4. PySpark數據幀 - 將類型更改爲ObjectId
- 5. pySpark數據幀「斷言isinstance(數據類型數據類型),‘數據類型應該是數據類型’
- 6. 更改熊貓數據幀特定列的數據類型
- 7. 如何處理pyspark數據幀列
- 8. 如何更改表列數據類型
- 9. 更改列數據類型
- 10. 爲PySpark數據幀
- 11. 在PySpark數據幀
- 12. 上Pyspark數據幀
- 13. 從整數數據幀列類型更改爲因素
- 14. Pyspark按另一個數據幀的列過濾數據幀
- 15. 如何更改數據列的數據類型
- 16. 如何更改德比數據庫中列的數據類型?
- 17. SettingWithCopyWarning Python的改變列數據類型的數據幀
- 18. R - 數據幀列的求和改變數據類型
- 19. PySpark:如何比較兩個數據幀
- 20. 更改列類型反覆火花數據幀
- 21. 更改列表中的R數據幀的變量類型
- 22. 在pyspark數據幀Acessing嵌套列
- 23. 填充在Pyspark數據幀
- 24. pyspark行號數據幀
- 25. 如何在R中按列類更改數據幀中的值
- 26. 如何更改數據類型c
- 27. 如何根據收到的數據更改數據類型
- 28. C#更改DataTable列數據類型
- 29. 更改所有列WHERE數據類型
- 30. 更改列類型和數據轉換
謝謝@ashwinds - 它幫助 – user2763088