当前位置: 首页 > 知识库问答 >
问题:

如何制作好的可复制的Apache Spark示例

贺跃
2023-03-14

我花了相当多的时间阅读了一些带有pyspark和spark-dataframe标签的问题,我经常发现海报没有提供足够的信息来真正理解他们的问题。我通常会评论,要求他们发布一个MCVE,但有时让他们展示一些输入/输出数据样本就像拔牙一样。

问题的一部分可能是人们不知道如何轻松地为Spark-Dataframes创建一个MCVE。我认为有一个spark-dataframe版本的这个pandas问题作为一个可以链接的指南是有用的。

那么,如何创造一个好的、可复制的例子呢?

共有1个答案

萧辰沛
2023-03-14

###提供可以轻松重新创建的小样本数据。至少,Poster应该在其数据帧上提供几行和几列,并提供可用于轻松创建数据帧的代码。我说的容易,是指剪贴。让它尽可能小,以证明你的问题。

我有以下数据帧:

+-----+---+-----+----------+
|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')
)

所需输出:

+-----+---+-----+----------+------------+
|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整除,所以答案是“是”。

from pyspark.sql import functions as f
df.withColumn("next_week", f.date_add("date", 7))

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

  • 由Desertnaut撰写的此答案中的全部详细信息。

###对于性能调优公告,包括执行计划

    null
    null
  • 务必先阅读如何询问和如何创建最小、完整和可验证的示例。
  • 阅读上面链接的此问题的其他答案。
  • 具有良好的描述性标题。
  • 要有礼貌。SO上的人都是志愿者,请好好的问一下。
 类似资料:
  • 在花了相当长的时间观看了r和pandas标签之后,我得到的印象是问题不太可能包含可复制的数据。这是R社区非常乐于鼓励的事情,多亏了这样的指南,新来者能够获得一些帮助来组合这些例子。能够阅读这些指南并带回可复制数据的人通常会更幸运地得到问题的答案。 我们如何才能为问题创建良好的重复性示例?可以将简单的数据帧放在一起,例如: 但许多示例数据集需要更复杂的结构,例如: 索引或数据 对于难以使用几行代码进

  • 我有一个场景,我想通过会话ID登录到自定义Log4j Appender。换句话说,我想为一个包(例如com.foo.bar)设置一个记录器,然后追加自定义Appender。只有当一个请求带有相同的会话标识时,我才希望记录要为匹配会话标识的Appender编写的消息。当我打开日志记录时,我们必须动态地添加一个Appender,并将其名称设置为会话我想做的是有一个预先配置的Appender,我从log

  • 我有一个项目的RDD,还有一个函数 。 收集RDD的两个小样本,然后这两个数组。这很好,但无法扩展。 有什么想法吗? 谢谢 编辑:下面是如何压缩每个分区中具有不同项数的两个示例: 关键是,虽然RDD的. zip方法不接受大小不等的分区,但迭代器的. zip方法接受(并丢弃较长迭代器的剩余部分)。

  • 问题内容: 如何使用CSS使列表项连续水平显示? 问题答案: 列表项通常是块元素。通过属性将它们变成内联元素。 在给出的代码中,您需要使用上下文选择器使该属性应用于列表项,而不是列表本身(应用于整个列表将无效): 这是工作示例:

  • 最新版本的kafka支持精确一次语义(EoS)。为了支持这一概念,在每个消息中都添加了额外的详细信息。这意味着在你的消费者;如果打印消息的偏移量,它们不一定是连续的。这使得轮询一个主题以阅读最后提交的消息变得更加困难。 在我的例子中,consumer打印了如下所示的内容 问题:为了编写可重启的proudcer;我对话题进行了投票,并阅读了上一条消息的内容。在这种情况下;最后一条消息将是偏移量#5,

  • 我遇到了T.3.8/4类型的值/对象表示的定义: 类型T的对象的对象表示形式是类型T的对象所占用的N个无符号char对象的序列,其中N等于sizeof(T)。对象的值表示形式是保存类型T的值的一组位。对于通常可复制的类型,值表示形式是对象表示形式中确定值的一组位,该值是实现定义的值集的一个离散元素。 我无法想象这些定义对于一个微不足道的可编译类型与对于任何其他类型有什么不同。什么严格的限制适用于一