我正在尝试读取存储在S3中的csv。 CSV不包含标题行。提供spark.csv方法的名称列表
火花2.0.0或更高版本,
我尝试阅读它:
df = spark.read.csv("path_to_csv")
现在,这给了我的列名:
_c0, _c1 , _c2 , ...
有没有办法通过我可以在上面的函数中提供列名称?在Pandas中,我可以使用参数name=['col1','col2',...]
。这里可能有类似的东西吗?
PS:我最初的想法是读取它作为CSV,然后后处理该列,因为spark.read.csv方法似乎没有任何参数可以帮助这里。
一个后处理解决方案,我能想到的是'new_df = df.toDF(所有 “col1”, “col2上” ..)' –
你试过类似于:df2 = df.withColumnRenamed(“_ c0”,“NewName1”)withColumnRenamed(“_ c1”,“NewName2”) – tbone
@tbone是的,我尝试过,它的工作原理。我不喜欢它的原因是这需要为每一列调用此方法。对我来说,这种方法似乎更适合单列更换而不是完整列表。我现在试图看看github上是否有一个功能请求直接在'read()'方法中提供列名。 –