使用字符串读取CSV文件到RDD spark

时间:2017-04-05 19:26:09

标签: python csv apache-spark pyspark rdd

我输入了以下

的CSV文件
123,john,ny,"new-emp-in"
111,rock,sf,"recently,promoted"
100,smith,la,"10.101.0129-name,string"

那我怎么读这个并创建RDD?
com.databricks:spark-csv_2.11:1.5.0支持这个,但我不能使用它。

2 个答案:

答案 0 :(得分:1)

在spark 2.0+中,您可以使用SparkSession.read方法读取多种格式,其中一种格式为csv。使用此方法,您可以执行以下操作:

df = spark.read.csv(filename)

或者对于rdd:

rdd = spark.read.csv(filename).rdd

更新

看过你的评论后,请查看CSV Data Source for Apache Spark 1.x。我相信这是导致将read方法包含在Spark 2.0中的一部分。

答案 1 :(得分:0)

使用旧版本的Spark,您无法直接读取csv。但您可以包含Databrick的csv jar并使用他们的Python API来实现相同的目标。

from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)

df = sqlContext.read.format('com.databricks.spark.csv').options(header='true', 
  inferschema='true').load('cars.csv')
df.select('year', 
  'model').write.format('com.databricks.spark.csv').save('newcars.csv')

参考:https://github.com/databricks/spark-csv#python-api