2017-05-29 111 views

回答

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")

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()