Как добавить столбец в SparkDataFrame, используя набор выражений SQL?
Я работаю с spark R, и я хотел бы добавить столбец в SparkDataFrame на основе строковой модификации существующего столбца. Рассмотрим следующую 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 (эквивалентно cbind в R/ я проверил с помощью Column, но не сумел объединить его с selectExpr)?
1 ответ
Решение
Попробуйте что-то вроде этого
Просто выберите другие столбцы
new_df <- selectExpr(df, "id", "address",
"SUBSTRING_INDEX(SUBSTRING_INDEX(address, ',', -2), ',', 1) AS neighborhood")
Это также может быть возможно
new_df <- selectExpr(df, "*",
"SUBSTRING_INDEX(SUBSTRING_INDEX(address, ',', -2), ',', 1) AS neighborhood")