【发布时间】:2016-12-01 08:57:20
【问题描述】:
我已经用 databrick csv 包启动了 shell
#../spark-1.6.1-bin-hadoop2.6/bin/pyspark --packages com.databricks:spark-csv_2.11:1.3.0
然后我读取了一个 csv 文件,做了一些 groupby 操作并将其转储到 csv。
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
df = sqlContext.read.format('com.databricks.spark.csv').options(header='true').load(path.csv') ####it has columns and df.columns works fine
type(df) #<class 'pyspark.sql.dataframe.DataFrame'>
#now trying to dump a csv
df.write.format('com.databricks.spark.csv').save('path+my.csv')
#it creates a directory my.csv with 2 partitions
### To create single file i followed below line of code
#df.rdd.map(lambda x: ",".join(map(str, x))).coalesce(1).saveAsTextFile("path+file_satya.csv") ## this creates one partition in directory of csv name
#but in both cases no columns information(How to add column names to that csv file???)
# again i am trying to read that csv by
df_new = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").load("the file i just created.csv")
#i am not getting any columns in that..1st row becomes column names
请不要在 read_csv 之后或在阅读提及列名时向数据框添加架构。
问题 1- 在提供 csv 转储时,有什么方法可以添加列名???
问题2-有没有办法创建可以由ms office或notepad++打开的单个csv文件(不是目录)???
注意:我目前没有使用集群,因为它对于像我这样的 spark 初学者来说太复杂了。如果有人能提供如何在集群环境中将 to_csv 处理成单个文件的链接,那将是一个很大的帮助。
【问题讨论】:
标签: python apache-spark pyspark apache-spark-sql pyspark-sql