dataframe - 如何制作良好的可重现 Apache Spark 示例

标签 dataframe apache-spark pyspark apache-spark-sql

我花了相当多的时间阅读 的一些问题。和 我经常发现海报没有提供足够的信息来真正理解他们的问题。我通常评论要求他们发布MCVE但有时让它们显示一些示例输入/输出数据就像拔牙一样。

也许问题的一部分是人们不知道如何轻松地为 Spark-dataframes 创建 MCVE。我认为拥有 this pandas question 的 Spark-Dataframe 版本会很有用。作为可以链接的指南。

那么如何创建一个好的、可重现的示例呢?

最佳答案

提供可以轻松重新创建的小样本数据。

至少,海报应该在其数据框和可用于轻松创建它的代码上提供几行和几列。简单地说,我的意思是剪切和粘贴。使其尽可能小以演示您的问题。

<小时/>

我有以下数据框:

+-----+---+-----+----------+
|index|  X|label|      date|
+-----+---+-----+----------+
|    1|  1|    A|2017-01-01|
|    2|  3|    B|2017-01-02|
|    3|  5|    A|2017-01-03|
|    4|  7|    B|2017-01-04|
+-----+---+-----+----------+

可以使用以下代码创建:

df = sqlCtx.createDataFrame(
    [
        (1, 1, 'A', '2017-01-01'),
        (2, 3, 'B', '2017-01-02'),
        (3, 5, 'A', '2017-01-03'),
        (4, 7, 'B', '2017-01-04')
    ],
    ('index', 'X', 'label', 'date')
)
<小时/>

显示所需的输出。

提出您的具体问题并向我们展示您想要的输出。

<小时/>

如何创建一个新列 'is_divisible' 具有值 'yes' 如果 'date' 的月份中的某天加上 7 天可以被列中的值整除'X' “不” 否则?

期望的输出:

+-----+---+-----+----------+------------+
|index|  X|label|      date|is_divisible|
+-----+---+-----+----------+------------+
|    1|  1|    A|2017-01-01|         yes|
|    2|  3|    B|2017-01-02|         yes|
|    3|  5|    A|2017-01-03|         yes|
|    4|  7|    B|2017-01-04|          no|
+-----+---+-----+----------+------------+
<小时/>

解释如何获取输出。

详细解释如何获得所需的输出。它有助于显示示例计算。

<小时/>

例如,在第 1 行中,X = 1 且日期 = 2017-01-01。添加迄今为止的 7 天,得出 2017-01-08。该月的第几天是 8,由于 8 能被 1 整除,所以答案是"is"。

同样,对于最后一行 X = 7 且日期 = 2017-01-04。日期加上 7 就得到 11 作为该月的第几天。由于 11 % 7 不是 0,所以答案是“否”。

<小时/>

分享您现有的代码。

向我们展示您已完成或尝试过的操作,包括所有*代码,即使它不起作用。告诉我们您遇到困难的地方,如果您收到错误,请附上错误消息。

(*您可以省略创建 Spark 上下文的代码,但应包含所有导入。)

<小时/>

我知道如何添加一个新列 日期 加上 7 天,但我无法以整数形式获取该月的日期。

from pyspark.sql import functions as f
df.withColumn("next_week", f.date_add("date", 7))
<小时/>

包含版本、导入并使用语法突出显示

<小时/>

对于性能调优帖子,请包含执行计划

<小时/>

解析spark输出文件

  • MaxU this answer 中提供了有用的代码帮助将 Spark 输出文件解析为 DataFrame。
<小时/>

其他注释。

关于dataframe - 如何制作良好的可重现 Apache Spark 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48427185/

相关文章:

scala - Scala Spark 中的 NullPointerException 似乎是由集合类型引起的?

apache-spark - Spark 溢出独立于分配的执行程序内存

pyspark - 使用高性能选择操作重命名 PySpark DataFrame 中的列

sql-server - Spark数据框未附加到表中

python - 如何在pyspark脚本中访问SparkContext

python - 通过相邻行的差异过滤 pandas 数据框

r - 按条件将行值组合成字符向量

python - Pyspark groupBy DataFrame 没有聚合或计数

python - 如何迭代列并按组检查条件

python - 我安装了 Pandas ,但它不工作