私はspark Rで作業しています。既存の列の文字列変更に基づいてSparkDataFrameに列を追加したいと思います。次のSparkDataFrameを検討してください。SQL式のセットを使用してSparkDataFrameに列を追加する方法は?
head(df)
id address
1 street_X, postal_code_X, neighborhood_X, county_name_X
2 neighborhood_Y, county_name_Y
3 postal_code_Z, neighborhood_Z, county_name_Z
近隣のみを含む列を追加する必要があります。私は新しいSparkDataFrameに次のようにこの列を抽出するための管理:
new_df <- selectExpr(df, "SUBSTRING_INDEX(address, ',', -2) AS neighborhood")
new_df <- selectExpr(new_df, "SUBSTRING_INDEX(neighborhood, ',', 1) AS neighborhood")
head(new_df)
neighborhood
neighborhood_X
neighborhood_Y
neighborhood_Z
しかし、私は、元のDFにこのコラム周辺を追加する方法(等価はRでCBINDするには/私はwithColumnをチェックし、それを組み合わせて管理していませんでしたselectExprで)?
ことができるかもしれない
他の列を選択し、この
のようなものを試してみてくださいあなたは、JOINコマンドを試したことがありますか?選択は列のサブセットを選択し、新しいものを追加しないプロジェクションです –
ありがとう、あなたはjoin(df、df_new)を意味しますか? spark.sql.crossJoin.enabledをtrueに設定する必要があることを示すRBackendHandlerエラーが表示されます(デカルト結合は高価になる可能性があり、デフォルトでは無効になっています)。私はこれを行う方法を確認する必要があります。 – kanimbla
実際、それは気にしない...なぜ同じ選択内でSUBSTRINGを2回呼び出すことができないのですか? –