2024-10-01 02:37:57 发布
网友
我的Spark数据帧中有1000列。我有一个下面的函数来逐个转换列类型。但我希望能够一次将所有列类型转换为double类型。下面的代码对于一次处理一列很有用。在
def convertcolumn(df, name, new_type): df_1 = df.withColumnRenamed(name, "swap") return df_1.withColumn(name, df_1["swap"].cast(new_type)).drop("swap")
例如,可以折叠列:
from functools import reduce mapping = [("x", "double"), ("y", "integer")] df = sc.parallelize([("1.0", "1", "foo")]).toDF(["x", "y", "z"]) reduce(lambda df, kv: convertcolumn(*(df, ) + kv), mapping, df)
或者简单地构建一个表达式列表和select:
select
例如,可以折叠列:
或者简单地构建一个表达式列表和
^{pr2}$select
:相关问题 更多 >
编程相关推荐