pyspark 中的变换函数

transform function in pyspark

我正在阅读 PySpark 的官方文档 API 数据框参考和下面的数据框转换函数代码片段让我感到困惑。我不明白为什么 * 放在下面定义的 sort_columns_asc 函数中的排序函数之前

from pyspark.sql.functions import col
df = spark.createDataFrame([(1, 1.0), (2, 2.0)], ["int", "float"])
def cast_all_to_int(input_df):
    return input_df.select([col(col_name).cast("int") for col_name in input_df.columns])
def sort_columns_asc(input_df):
    return input_df.select(*sorted(input_df.columns))
df.transform(cast_all_to_int).transform(sort_columns_asc).show()
+-----+---+
|float|int|
+-----+---+
|    1|  1|
|    2|  2|
+-----+---+

请帮我解惑。

它用于从更高维度解压arrays/collections。

# 1D Array
collection1 = [1,2,3,4]
print(*collection1)
1 2 3 4

# 2D Array
collection2 = [[1,2,3,4]]
print(*collection2)
[1, 2, 3, 4]

在您的示例中,您从

中解压缩列名的名称
example = ["int", "float"]

print(*sorted(example))
float int

查看 this 了解更多信息。