2017-02-13 1 views
0

팬더 덩어리 기능을 사용하여 CSV로 읽고 있습니다. 내가 헤더를 유지할 수 없다는 것을 제외하면 작동합니다. 이를위한 방법/옵션이 있습니까?pyspark 팬더를 사용하여 csv를 읽는 중 머리글을 유지하는 방법

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

를,''X = 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') 
관련 문제