DataFrame
とfew columns
があります。今、私は既存のDataFrameにさらに2つの列を追加したいと思います。withColumnを使用して既存のDataFrameに2つのカラムを追加する
現在、私はこれをDataFrameのwithColumn
メソッドを使用して実行しています。例えば
:
df.withColumn("newColumn1", udf(col("somecolumn")))
.withColumn("newColumn2", udf(col("somecolumn")))
実際に私は、配列[文字列]を使用して単一のUDF法の両方新たな列の値を返すことができます。しかし、現在、これは私がそれをやっている方法です。
とにかく、私はこれを効果的に行うことができますか? explode
を使用してここに良いオプションはありますか?
は私がexplode
を使用する必要がある場合でも、私はその後、一度withColumn
を使用し、その後explode
を使用して、Array[String]
として列の値を返し、さらに2つの列を作成する必要があります。
どちらが効果的ですか?または選択肢がありますか?
非常に興味深いアプローチです。あなたが得ることができる実際のパフォーマンスの利点を測定しましたか? –
@AntonOkolnychyiもちろん、ユースケースによって異なります。私が計算するために〜500 milisecsを受け取り、出力の40列を生成UDFを持っています。この場合、私は絶対にこのUDFを複数回呼びたくはありません。 ..私は上記のパターン –
@RaphaelRoth使用して:おかげで、どのように上記のケースのためのタプルを使用していますか?どのようにタプルの列から値を取得しますか?基本的にwithColumnsは値としてcol( "somecolumn")を受け入れます。 – Shankar