У меня есть таблица ‘t’ с двумя столбцами ‘col24’ и ‘col23’, я хочу создать фрейм данных ‘r’

#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"))