2017-11-08 11 views
2

カラム内の値を小文字に変換したい。現在、lower()メソッドを使用している場合は、列オブジェクトが呼び出し可能ではないというエラーが発生します。 SQLにlower()という関数があるので、UDFを含まない、または実際のSQLを書くネイティブのSparkソリューションがあると仮定します。手動lowerをインポートする必要がPyspark:カラムを小文字に変換する

答えて

3

、あなたがcolをインポートする必要がほとんど同じ方法:

from pyspark.sql.functions import lower, col 

lower(col("bla"))を使用してそれらを一緒に結合します。完全なクエリで:UDFのがある(パイソンを呼び出す必要があるため、このアプローチは、UDFを使用するよりも優れている、

SELECT bla FROM bla WHERE lower(bla) = "bla" 

言うまでもなくするSQLクエリに相当し

spark.table('bla').where(lower(col('bla')) == 'bla') 

遅い操作、そしてPython自体は遅い)、それをSQLで書くよりもエレガントです。

+4

このコードは質問に答えるかもしれませんが、このコードが質問に答える理由と理由についての追加の文脈を提供すると、長期的な価値が向上します。 – Isma

+0

@Isma編集を参照してください。 – ogogmad

+0

@Isma最後の段落を参照してください。そうでなければ、あなたはそれが欠けていると思うかどうか分からない。 – ogogmad

関連する問題