【问题标题】:How to read specific column in pyspark?如何阅读pyspark中的特定列?
【发布时间】:2017-05-29 10:55:46
【问题描述】:

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

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

但是pyspark中是否有类似这个操作的功能呢?

【问题讨论】:

    标签: python pandas pyspark


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      读取 CSV 文件通常不像 @zlidime 的回答所暗示的那样简单。

      如果行的列内容中有; 字符怎么办?然后你需要解析引号,并提前知道引号字符是什么。 或者,也许您想跳过标题,或者解析它以获得列名。

      相反,如here 所述,您可以使用dataframes

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

      要查询列,您可以使用:

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

      【讨论】:

        猜你喜欢
        • 2020-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-30
        • 1970-01-01
        • 1970-01-01
        • 2020-04-30
        相关资源
        最近更新 更多