【问题标题】:Viewing the content of a Spark Dataframe Column查看 Spark Dataframe 列的内容
【发布时间】:2015-09-16 09:57:56
【问题描述】:

我使用的是 Spark 1.3.1。

我正在尝试在 Python 中查看 Spark 数据框列的值。使用 Spark 数据框,我可以通过 df.collect() 查看数据框的内容,但据我所知,对于 Spark 数据框列没有这种方法。

例如,数据框 df 包含名为 'zip_code' 的列。所以我可以做df['zip_code'],它会变成pyspark.sql.dataframe.Column 类型,但我找不到查看df['zip_code'] 中的值的方法。

【问题讨论】:

    标签: python apache-spark dataframe pyspark


    【解决方案1】:

    您可以访问底层RDD 并对其进行映射

    df.rdd.map(lambda r: r.zip_code).collect()
    

    如果您不介意使用Row 对象包装的结果,您也可以使用select

    df.select('zip_code').collect()
    

    最后,如果你只是想检查内容,那么show 方法就足够了:

    df.select('zip_code').show()
    

    【讨论】:

    • 这里有问题的问题不是,“如何查看Dataframe的内容,而只有一列它?”,而是 “给定一个 Column 类型的对象,并且没有 Dataframe 类型的对象,我如何查看它的内容
    • @JordanPilat 你没有。 Column 不受任何执行计划的限制。它只不过是一个符号。
    • 好答案!澄清一下,Column 本身不包含任何数据,仅表示 1 或更多 特定 DataFrame 列的一系列 0 或更多 转换。因此,在生成它的DataFrame 的上下文之外引用它是没有意义的。对吗?
    • @JordanPilat 它可以从表达式构造,但归根结底,它本身没有任何意义。考虑一下:$"foo"。它创建了一个ColumnName 类的对象,它是Column 的子类。单独它没有任何意义。我可以使用不同的 DF 对其进行评估并获得不同的结果(或异常)。如果您曾经使用过 R,请考虑 formulas
    【解决方案2】:

    查看完整内容:

    df.select("raw").take(1).foreach(println)
    

    show 将向您展示概览)。

    【讨论】:

      【解决方案3】:

      你可以简单地写:

      df.select('your column's name').show()
      

      在您的情况下,它将是:

      df.select('zip_code').show()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-27
        • 2016-02-17
        • 2011-09-06
        • 1970-01-01
        • 2011-08-29
        相关资源
        最近更新 更多