0
私はPySparkにデータフレームを持っています。条件付きでデータフレームに列を追加したいと思います。Pysparkの条件付きでデータフレームに列を追加
データフレームに列がない場合は、null
の値を持つ列を追加します。 列が存在する場合は、何もしないと私はPySpark
私はPySparkにデータフレームを持っています。条件付きでデータフレームに列を追加したいと思います。Pysparkの条件付きでデータフレームに列を追加
データフレームに列がない場合は、null
の値を持つ列を追加します。 列が存在する場合は、何もしないと私はPySpark
で条件文を渡すんそれは難しいことではありませんが、あなたはよりもう少し必要があります
どのように新しいデータフレームと同じデータフレームを返しますそれを正しく行うための列名。必要輸入
from pyspark.sql import types as t
from pyspark.sql.functions import lit
from pyspark.sql import DataFrame
例データ:
df = sc.parallelize([("a", 1, [1, 2, 3])]).toDF(["x", "y", "z"])
ヘルパー機能(従来のPythonのバージョンとの使用のためは、型注釈ストリップ):
def add_if_not_present(df: DataFrame, name: str, dtype: t.DataType) -> DataFrame:
return (df if name in df.columns
else df.withColumn(name, lit(None).cast(dtype)))
使用例:
add_if_not_present(df, "foo", t.IntegerType())
DataFrame[x: string, y: bigint, z: array<bigint>, foo: int]
add_if_not_present(df, "x", t.IntegerType())
DataFrame[x: string, y: bigint, z: array<bigint>]
DataFrame[x: string, y: bigint, z: array<bigint>, foobar: struct<foo:int,bar:int>]