#pyspark #pyspark-sql
#pyspark #apache-spark-sql
Вопрос:
Представьте таблицу t
с двумя столбцами — col24
и col18
я хочу создать фрейм данных ‘r’.Чтобы в результирующем фрейме данных вызывался только один столбец col24
first_name
.
Я пробовал следующий код, но он не сработает. но я понимаю, что это неправильно, помогите мне решить
import pyspark.sql.functions as f
r = t.select(f.explode("col24").alias("first_name")).toPandas()
Комментарии:
1. У вас есть два столбца
col24
иcol18
. 1) Вы хотите переименоватьcol24
вfirst_name
2) Вы хотите удалитьcol18
. Это то, чего ты хочешь?2. да, мне нужно то же самое.
Ответ №1:
import pyspark.sql.functions as f
Если я правильно понял ваш вопрос, эти два варианта должны сработать:
r = t.select('col24').f.withColumnRenamed('col24', 'first_name')
r = t.withColumnRenamed('col24', 'first_name').drop('col18')
Например, если у вас есть несколько столбцов в списке my_cols, тогда второй вариант становится:
r = t.withColumnRenamed('col24', 'first_name').drop(*my_cols)
Затем вы можете проверить свой фрейм данных:
r.show()
или, если t является массивным, просто проверьте имена столбцов:
r.columns
Ответ №2:
Пожалуйста, найдите ожидаемый ответ ниже:
select(f.col("col24").alias("first_name"))