Я исхожу из фона pandas и использую для чтения данных из CSV файлов в фреймворк данных, а затем просто изменяю имена столбцов на что-то полезное с помощью простой команды:
df.columns = new_column_name_list
Однако то же самое не работает в фреймах данных pyspark, созданных с использованием sqlContext. Единственное решение, которое я мог бы легко сделать, это следующее:
df = sqlContext.read.format("com.databricks.spark.csv").options(header='false', inferschema='true', delimiter='\t').load("data.txt")
oldSchema = df.schema
for i,k in enumerate(oldSchema.fields):
k.name = new_column_name_list[i]
df = sqlContext.read.format("com.databricks.spark.csv").options(header='false', delimiter='\t').load("data.txt", schema=oldSchema)
Это в основном определяет переменную дважды и сначала выводит схему, а затем переименовывает имена столбцов, а затем снова загружает фрейм с обновленной схемой.
Есть ли лучший и эффективный способ сделать это, как в pandas?
Моя световая версия 1.5.0