PythonとPySparkの新機能です。私は、次のようなPySparkでデータフレームを持っている:インデックスがデータフレームの1つの列にあるリストを使用してPySparkデータフレームに列を作成します。
## +---+---+------+
## | x1| x2| x3 |
## +---+---+------+
## | 0| a | 13.0|
## | 2| B | -33.0|
## | 1| B | -63.0|
## +---+---+------+
Iアレイを有する: ARR = [10、12、13]
私はそれがなければならないこと、そのようなデータフレームの列X4を作成しますインデックスとしてx1の値に基づいてリストから対応する値を持つ。
df.withColumn("x4", lit(arr[col('x1')])).show()
をしかし、私はエラーを取得しています:
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
です私は達成するために、次のコードを使用してみましたが
## +---+---+------+-----+
## | x1| x2| x3 | x4 |
## +---+---+------+-----+
## | 0| a | 13.0| 10 |
## | 2| B | -33.0| 13 |
## | 1| B | -63.0| 12 |
## +---+---+------+-----+
:最終データセットは次のようになります。私はこれを効率的に達成する方法はありますか?