【发布时间】:2018-03-01 22:43:20
【问题描述】:
在 Python 中学习 Spark 时,我无法理解 alias 方法的用途及其用法。 documentation 显示它被用来创建具有新名称的现有 DataFrame 的副本,然后将它们连接在一起:
>>> from pyspark.sql.functions import *
>>> df_as1 = df.alias("df_as1")
>>> df_as2 = df.alias("df_as2")
>>> joined_df = df_as1.join(df_as2, col("df_as1.name") == col("df_as2.name"), 'inner')
>>> joined_df.select("df_as1.name", "df_as2.name", "df_as2.age").collect()
[Row(name=u'Bob', name=u'Bob', age=5), Row(name=u'Alice', name=u'Alice', age=2)]
我的问题有两个部分:
alias输入的用途是什么?当我们已经将新的 DataFrame 分配给变量df_as1时,给出别名字符串"df_as1"似乎是多余的。如果我们改用df_as1 = df.alias("new_df"),"new_df"会出现在哪里?一般来说,
alias函数什么时候有用?上面的例子感觉有点人为,但是从探索教程和例子来看,它似乎经常被使用——我只是不清楚它提供了什么价值。
编辑:我最初的一些困惑来自DataFrame 和Column 都有alias 方法这一事实。尽管如此,我仍然对上述两个问题感到好奇,现在问题 2 也适用于Column.alias。
【问题讨论】:
标签: python pyspark pyspark-sql