팬더 배경에서 왔으며 CSV 파일의 데이터를 데이터 프레임으로 읽은 다음 간단한 명령을 사용하여 열 이름을 유용한 것으로 변경하는 데 익숙합니다.
df.columns = new_column_name_list
그러나 sqlContext를 사용하여 생성 된 pyspark 데이터 프레임에서도 동일하게 작동하지 않습니다. 이 작업을 쉽게 수행 할 수있는 유일한 해결책은 다음과 같습니다.
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)
기본적으로 변수를 두 번 정의하고 스키마를 먼저 유추 한 다음 열 이름을 바꾸고 업데이트 된 스키마로 데이터 프레임을 다시로드합니다.
우리가 판다에서하는 것처럼 더 좋고 효율적인 방법이 있습니까?
내 스파크 버전은 1.5.0입니다
for
루프 +withColumnRenamed
,하지만reduce
옵션은 : 아주 좋은