【问题标题】:Alias in PysparkPyspark 中的别名
【发布时间】:2020-04-29 10:41:52
【问题描述】:
我最近一直在查看 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()
【问题讨论】:
标签:
python
apache-spark
pyspark
apache-spark-sql
alias
【解决方案1】:
别名继承自SQL 语法。这是一种在查询中重命名变量的方法(例如select)。它避免了创建一个您没有选择的临时名称,并且之后必须使用 withColumnRenamed 之类的名称重命名变量。
例如,
df.select([count(when(isnan(c), c)).alias(c) for c in df.columns]).show()
确保计数操作的结果将返回一个与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')