2017-05-07 51 views
0

我想用Spark來讀取jupyter筆記本中的csv文件。到目前爲止,我有如何在使用spark讀取csv.file時省略標題?

spark = SparkSession.builder.master("local[4]").getOrCreate() 
reviews_df = spark.read.option("header","true").csv("small.csv") 
reviews_df.collect() 

這是reviews_df的樣子:

[Row(reviewerID=u'A1YKOIHKQHB58W', asin=u'B0001VL0K2', overall=u'5'), 
Row(reviewerID=u'A2YB0B3QOHEFR', asin=u'B000JJSRNY', overall=u'5'), 
Row(reviewerID=u'AAI0092FR8V1W', asin=u'B0060MYKYY', overall=u'5'), 
Row(reviewerID=u'A2TAPSNKK9AFSQ', asin=u'6303187218', overall=u'5'), 
Row(reviewerID=u'A316JR2TQLQT5F', asin=u'6305364206', overall=u'5')...] 

但數據幀中的每一行包含列名,我怎麼能格式化數據,使其能成爲:

[(u'A1YKOIHKQHB58W', u'B0001VL0K2', u'5'), 
    (u'A2YB0B3QOHEFR', u'B000JJSRNY', u'5')....] 

回答

1

數據幀總是返回對象,這就是爲什麼當你發出的數據幀collect(),這表明 -

Row(reviewerID=u'A1YKOIHKQHB58W', asin=u'B0001VL0K2', overall=u'5') 

得到你想要的,你可以做什麼 -

reviews_df.rdd.map(lambda row : (row.reviewerID,row.asin,row.overall)).collect() 

這將返回tuple of values of rows

相關問題