我最近一直在看pyspark的代码,我看到的是 alias
很多时候。但我并不真正理解它是如何使用的以及它的含义。所以我想知道是否有人能解释一下它是如何在下面的两个例子中工作的。
df.select(from_unixtime(unix_timestamp(df.Date_col, 'yyyy-MM-dd HH:mm:ss')).alias('dt_col'))
df.select([count(when(isnan(c), c)).alias(c) for c in df.columns]).show()
别名是继承自 SQL
语法。这是在查询中重命名一个变量的方法(例如,一个 select
). 它避免了创建一个你没有选择的临时名称,然后不得不在之后用类似于 withColumnRenamed
.
例如:
df.select([count(when(isnan(c), c)).alias(c) for c in df.columns]).show()
确保counter操作的结果将返回一个新的变量,其名称与在 df
对象。否则,你最终会得到一个名为 count(col1)
...哪里 col1
是初始变量名。
在执行聚合时,别名是非常有用的。
在同样的方式下。
df.select(from_unixtime(unix_timestamp(df.Date_col, 'yyyy-MM-dd HH:mm:ss')).alias('dt_col'))
是一种简洁的方式。
df.withColumn('dt_col', from_unixtime(unix_timestamp(df.Date_col, 'yyyy-MM-dd HH:mm:ss')).select('dt_col')