【问题标题】:pyspark - what is the real use of "col" functionpyspark - “col”函数的真正用途是什么
【发布时间】:2020-09-26 20:40:39
【问题描述】:

我还没有找到“col”函数的真正用途,到目前为止,我看到使用 col 或不使用 col 函数的影响相同。有人可以详细说明一个只能用“col”函数完成的用例吗?

两者都返回相同的结果。那么,“col”函数的真正需要是什么。我从文档中了解到,它会重新运行 col 类型。

employeesDF. \
    select(upper("first_name"), upper("last_name")). \
    show()

employeesDF. \
    select(upper(col("first_name")), upper(col("last_name"))). \
    show()

【问题讨论】:

    标签: apache-spark pyspark


    【解决方案1】:

    在某些情况下,函数将列 names 又名字符串作为输入或列类型,例如您在上面的选择中。选择总是会返回列的数据框,因此支持这两种输入类型是有意义的。但是,仅使用列名进行选择更为常见。

    在许多情况下,虽然 (String) columnName 和 col(string) 之间存在很大差异,但您必须明确。例如说你有类似的东西

    when(col("my_col").isNull()).otherwise("other_col")
    

    在该表达式中,当“my_col”为空时,您将返回文字字符串“other_col”,而不是来自“other_col”的

    【讨论】:

    • 您是否介意举一个例子来说明确实需要使用 col 与 string 的示例,否则可能无法正常工作
    • 以上是一个例子。如果您的当前列为空,您通常需要另一列的值。在上面的示例中,“编码器”可能意味着使用.otherwise(col('other_col')) 而不是.otherwise('other_col')。第一个给出另一列的值,后者给你一个文字值'other_col'。如果这不包括您正在寻找的示例,您能否澄清一下?
    猜你喜欢
    • 2010-10-30
    • 2020-08-07
    • 2020-02-02
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    相关资源
    最近更新 更多