但是,这在使用 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)
这基本上是两次定义变量并首先推断架构,然后重命名列名,然后使用更新的架构再次加载数据框。
有没有更好、更有效的方法来做到这一点,就像我们在 pandas 中所做的那样?
我的 Spark 版本是 1.5.0
原文由 Shubhanshu Mishra 发布,翻译遵循 CC BY-SA 4.0 许可协议