gpt4 book ai didi

python - PySpark 中别名方法的用途是什么?

转载 作者:行者123 更新时间:2023-12-02 11:40:49 27 4
gpt4 key购买 nike

在使用 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)]

我的问题分为两部分:

  1. 别名输入的目的是什么?当我们已经将新的 DataFrame 分配给变量 df_as1 时,给出别名字符串 "df_as1" 似乎是多余的。如果我们改用 df_as1 = df.alias("new_df")"new_df" 会出现在哪里?

  2. 一般来说,alias 函数什么时候有用?上面的示例感觉有点人为,但从探索教程和示例来看,它似乎经常被使用——我只是不清楚它提供了什么值(value)。

编辑:我最初的一些困惑来自于 DataFrameColumn 都有 alias 方法。尽管如此,我仍然对上述两个问题感到好奇,问题 2 现在也适用于 Column.alias。

最佳答案

  1. 变量名称无关紧要,可以是您喜欢的任何名称。这是将在字符串列标识符和打印输出中使用的别名。

  2. 我认为别名的主要目的是为了实现更好的简洁性并避免列名冲突时可能出现的混淆。例如,在您搜索该列中的最大值后,为了简洁起见,简单的“age”可以别名为“max_age”。或者,您可以将公司员工的数据框架与其自身连接起来并进行过滤,以便获得经理-下属对。在这种情况下使用“manager.name”等列名可能会很有用。

关于python - PySpark 中别名方法的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46329371/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com