迭代 Spark 数据帧(使用 Pyspark)并一旦找到数据类型Decimal(38,10)
-> 将其更改为 Bigint(并将所有数据重新保存到同一数据帧)的最佳方法是什么?
我有一部分用于更改数据类型 - 例如:
df = df.withColumn("COLUMN_X", df["COLUMN_X"].cast(IntegerType()))
但试图找到并与迭代集成..
谢谢。
当 type 等于 时,您可以循环遍历df.dtypes
并强制转换bigint
为decimal(38,10)
:
from pyspark.sql.funtions import col
select_expr = [
col(c).cast("bigint") if t == "decimal(38,10)" else col(c) for c, t in df.dtypes
]
df = df.select(*select_expr)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句