首頁 > 後端開發 > Python教學 > 如何為 Spark DataFrame 新增常數列?

如何為 Spark DataFrame 新增常數列?

Linda Hamilton
發布: 2024-11-07 00:31:02
原創
509 人瀏覽過

How to Add a Constant Column to a Spark DataFrame?

在Spark DataFrame 中建立常數列

使用適用於所有行的任意值將常數列新增至Spark DataFrame 可以可以透過多重化>使用適用於所有行的任意值將常數列新增至Spark DataFrame 可以可以透過多點多組種方式來實現。用於此目的的 withColumn 方法在嘗試提供直接值作為其第二個參數時可能會導致錯誤。

使用文字值(Spark 1.3 )

要解決此問題,請使用lit 建立所需值的文字表示:

from pyspark.sql.functions import lit

df.withColumn('new_column', lit(10))
登入後複製

建立複雜列(Spark 1.4 )

對於更複雜的列類型,例如數組、結構體或映射,請使用適當的函數:

from pyspark.sql.functions import array, struct

df.withColumn('array_column', array(lit(1), lit(2)))
df.withColumn('struct_column', struct(lit('foo'), lit(1)))
登入後複製

類型化文字(Spark 2.2 )

Spark 2.2 引入了typedLit,提供了對Seq、Map和元組:

import org.apache.spark.sql.functions.typedLit

df.withColumn("some_array", typedLit(Seq(1, 2, 3)))
登入後複製

使用使用者定義函數 (UDF)

或者,建立一個傳回常數值的 UDF:

from pyspark.sql import functions as F

def constant_column(value):
    def udf(df):
        return [value for _ in range(df.count())]
    return F.udf(udf)

df.withColumn('constant_column', constant_column(10))
登入後複製

注意:

這些方法也可以用來將常數參數傳遞給 UDF 或 SQL 函數。

以上是如何為 Spark DataFrame 新增常數列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板