gpt4 book ai didi

pyspark.sql.functions.col 和 pyspark.sql.functions.lit 之间的 PySpark 区别

转载 作者:行者123 更新时间:2023-12-04 05:28:40 25 4
gpt4 key购买 nike

我发现很难从 pyspark.sql.functions 理解这两种方法之间的区别。因为 PySpark 官方网站上的文档信息量不大。例如下面的代码:

import pyspark.sql.functions as F
print(F.col('col_name'))
print(F.lit('col_name'))

结果是:
Column<b'col_name'>
Column<b'col_name'>

那么两者之间有什么区别,我什么时候应该使用一个而不是另一个?

最佳答案

doc说:

上校:

根据给定的列名返回一个列。

点亮:

创建一列文字值

假设我们有一个如下的数据框:

>>> import pyspark.sql.functions as F
>>> from pyspark.sql.types import *

>>> schema = StructType([StructField('A', StringType(), True)])
>>> df = spark.createDataFrame([("a",), ("b",), ("c",)], schema)
>>> df.show()
+---+
| A|
+---+
| a|
| b|
| c|
+---+

如果使用 colA 创建一个新列:
>>> df.withColumn("new", F.col("A")).show()
+---+---+
| A|new|
+---+---+
| a| a|
| b| b|
| c| c|
+---+---+

所以 col获取具有给定名称的现有列 F.col("A")相当于 df.Adf["A"]这里。

如果使用 F.lit("A")创建列:
>>> df.withColumn("new", F.lit("A")).show()
+---+---+
| A|new|
+---+---+
| a| A|
| b| A|
| c| A|
+---+---+

虽然 lit将创建一个以给定字符串作为值的常量列。

它们都返回一个 Column 对象,但内容和含义不同。

关于pyspark.sql.functions.col 和 pyspark.sql.functions.lit 之间的 PySpark 区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46386505/

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