Pyspark: 列を小文字に変換する 質問する

Pyspark: 列を小文字に変換する 質問する

列内の値を小文字に変換したいです。現在、メソッドを使用するとlower()、列オブジェクトが呼び出し可能ではないというエラーが表示されます。SQL で呼び出される関数があるので、lower()UDF を必要とせず、SQL を記述する必要もないネイティブの Spark ソリューションがあると思います。

ベストアンサー1

lower一緒にインポートcol:

from pyspark.sql.functions import lower, col

を使用してこれらを組み合わせますlower(col("bla"))。完全なクエリでは次のようになります。

spark.table('bla').select(lower(col('bla')).alias('bla'))

これはSQLクエリと同等である

SELECT lower(bla) AS bla FROM bla

他の列を残すには、

spark.table('foo').withColumn('bar', lower(col('bar')))

言うまでもなく、このアプローチは UDF を使用するよりも優れています。UDF は Python を呼び出す必要があるため (これは低速な操作であり、Python 自体も低速です)、SQL で記述するよりもエレガントです。

おすすめ記事