如何阅读pyspark中的特定列?

时间:2017-05-29 10:55:47

标签: python pandas pyspark

我是pyspark的新手。我想从输入文件中读取特定列。我知道如何在熊猫中做到这一点

df=pd.read_csv('file.csv',usecols=[0,1,2])

但在pyspark中是否有与此操作类似的功能?

2 个答案:

答案 0 :(得分:1)

阅读CSV文件通常不像@ zlidime的答案那样简单。

如果列内容中包含;个字符,该怎么办?然后你需要解析引号,并事先知道引用字符是什么。 或者您可能希望跳过标题,或者将其解析为具有列名称。

相反,正如前面提到的here,您可以使用dataframes

df = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").load("te2.csv")

要查询列,您可以使用:

df.col("col_1").cast("int")

答案 1 :(得分:0)

您好,您可以使用地图选择特定列

from pyspark import SQLContext
from pyspark import SparkConf, SparkContext
conf = SparkConf().setAppName("ReadCSV")
sc = SparkContext(conf=conf) 
sqlctx = SQLContext(sc)
df=sc.textFile("te2.csv") \
   .map(lambda line: line.split(";")) \
   .map(lambda line: (line[0],line[3])) \
   .toDF()