は、私はこのような何かをしたい:PySparkで文字列値をNULLに置き換えるにはどうすればよいですか?
df.replace('empty-value', None, 'NAME')
は基本的に、私はNULLでいくつかの値を置き換えたいです。この関数ではNoneを受け付けません。これどうやってするの?それはBatchPythonEvaluation
を導入しない
from pyspark.sql.functions import when, lit, col
df = sc.parallelize([(1, "foo"), (2, "bar")]).toDF(["x", "y"])
def replace(column, value):
return when(column != value, column).otherwise(lit(None))
df.withColumn("y", replace(col("y"), "bar")).show()
## +---+----+
## | x| y|
## +---+----+
## | 1| foo|
## | 2|null|
## +---+----+
とそのためUDFを使用するよりもはるかに効率的でなければなりません:
私はUDFを試していないと思っていました。 – talloaktrees