データフレームがあるとしましょう:
df = sqlContext.createDataFrame(
[(1, 10, 21.0, 0), (3, 14, -23.0, 1)], ("x1", "x2", "x3", "x4"))
df.show()
## +---+---+-----+---+
## | x1| x2| x3| x4|
## +---+---+-----+---+
## | 1| 10| 23.0| 5|
## | 3| 14|-23.0| 0|
## +---+---+-----+---+
行を「複製」しx4=1
、それらの複製を設定する効率的な方法は何でしょうか。
## +---+---+-----+---+
## | x1| x2| x3| x4|
## +---+---+-----+---+
## | 1| 10| 23.0| 5|
## | 1| 10| 23.0| 1|
## | 3| 14|-23.0| 0|
## | 3| 14|-23.0| 1|
## +---+---+-----+---+
Apache PIGでは、アナログは単純です。foreachを実行して次を生成します。
FLATTEN(TOBAG(1, x4)) AS x4
皆さん、ありがとうございました
必要な機能を以下からインポートしますpyspark.sql.functions
。
from pyspark.sql.functions import array, explode, lit
既存の列を置き換えます。
df.withColumn("x4", explode(array(lit(1), df["x4"])))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加