文字列値を含む列(たとえば 'xyztext \ afadfa')を持つスパークデータフレームを持っています。私は別の列の文字列検索に基づいてSpark Dataframeで関数を使用して新しい列を作成します。
値が元の列は、特定のテキスト(すなわち、「テキスト」)を含んでいるかどうかに応じて、「0」または「1」のある新しい列を作成したい結果の例:## +---+---+------+---------+
## | x1| x2| x3 | xnew |
## +---+---+------+---------+
## | 1| a| xtext| 1 |
## | 3| B| abcht| 0 |
EDIT:私は以前これを試してみましたが、SGVDのおかげで.cast(int)を追加しましたが、カラム名を挿入すると 'カラムがコール可能ではありません'というエラーが発生します。 df1 = df.withColumn( 'Target'、df.column。
私が今までに達成した最高のものは、0を含む列を作成することです。
from pyspark.sql.functions import lit
df1 = df.withColumn('Target', lit(0))
私はベクトルを作成する場合は、else文をも試してみましたが、運を持っていない午前:
def targ(string):
if df.column.contains('text'): return '1'
else: return '0'
ありがとうございました。私は列名を挿入すると、なぜこのエラーが発生し続けるのか知っていますか? TypeError Traceback(直近の最後のコール)( ----> 1 df2 = df1.withColumn( 'Target'、df.csuristem.contains( 'text'))の TypeError: 'Column'オブジェクトは呼び出し可能ではありません –
W4K1NG
私は間違って、ScalaメソッドがPySparkでも利用可能であると仮定しました。私は実際に動作するいくつかの例で私の答えを編集しました。 – sgvd
乾杯 - とても感謝します。 – W4K1NG