2017-02-13 4 views
0

Я читаю в csv, используя функциональность pandas chunks. Он работает, за исключением того, что я не могу сохранить заголовки. Есть ли способ/вариант для этого? Здесь приведен пример кода:pyspark чтение csv using pandas, как сохранить заголовок

import pyspark 
import pandas as pd 
sc = pyspark.SparkContext(appName="myAppName") 
spark_rdd = sc.emptyRDD() 

# filename: csv file 
chunks = pd.read_csv(filename, chunksize=10000) 
for chunk in chunks: 
    spark_rdd += sc.parallelize(chunk.values.tolist()) 

    #print(chunk.head()) 
    #print(spark_rdd.toDF().show()) 
    #break 

spark_df = spark_rdd.toDF() 
spark_df.show() 

ответ

1

Попробуйте это:

import pyspark 
import pandas as pd 
sc = pyspark.SparkContext(appName="myAppName") 
spark_rdd = sc.emptyRDD() 

# Read ten rows to get column names 
x = pd.read_csv(filename,nrows=10) 
mycolumns = list(x) 

# filename: csv file 
chunks = pd.read_csv(filename, chunksize=10000) 
for chunk in chunks: 
    spark_rdd += sc.parallelize(chunk.values.tolist()) 

spark_df = spark_rdd.map(lambda x:tuple(x)).toDF(mycolumns) 
spark_df.show() 
+0

для чтения заголовков, '' х = pd.read_csv (имя файла , nrows = 1) '' должно быть достаточно? – muon

+0

Я согласен с этим произвольным, не имеет значения, если вы возьмете 1,5 или 10 строк, пока вы берете по крайней мере один. –

0

Я закончил с использованием databricks' искровым CSV

sc = pyspark.SparkContext() 
sql = pyspark.SQLContext(sc) 

df = sql.read.load(filename, 
       format='com.databricks.spark.csv', 
       header='true', 
       inferSchema='true') 

 Смежные вопросы

  • Нет связанных вопросов^_^