Как добавить столбец в 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")
Другие вопросы по тегам