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