【问题标题】:Generate large amounts sample data in S3 for Spark consumption?在 S3 中生成大量样本数据以供 Spark 使用?
【发布时间】:2019-08-25 10:17:09
【问题描述】:

我有一个当前的 Spark 管道,它在相对少量的数据上运行。对这么多数据的性能测试只能让我到目前为止,理想情况下我想在大量数据上测试火花管道。

是否有任何方法或工具可以模拟或模拟大量输入数据以供 spark 处理,尤其是当输入来自 Amazon S3 时?当我开始获得大量数据时,我不希望火花爆炸。

如果有帮助,我有一个输入数据必须遵守的 JSON 模式。

我不介意解决方案是在 spark 本身中生成假输入数据还是在 s3 上生成假输入数据。

【问题讨论】:

    标签: json apache-spark amazon-s3


    【解决方案1】:

    使用 range 函数使用 spark 生成假数据非常容易。

    如果您喜欢机器学习,我将使用可预测的噪声标签(但您可以定义任何逻辑)构建随机数据。

    val numberOfLines = 4 // or much more ;-)
    val numberOfColumns = 4 // or 100
    spark.range(numberOfLines)
       .select((0 until numberOfColumns).map(i => rand() as s"c_$i") :_*)
       .withColumn("label", 'c_0 + 'c_1*3 - 'c_2*6 + 9 + rand())
       .show
    +-------------------+-------------------+-------------------+------------------+------------------+
    |                c_0|                c_1|                c_2|               c_3|             label|
    +-------------------+-------------------+-------------------+------------------+------------------+
    |0.15187732653071206|0.26585053576672046| 0.9224023831542573|  0.71091441935634| 5.360791420252281|
    | 0.2808748382324112|0.14308527032596263|0.18822196601676966|0.5838190107539017| 9.077521940396766|
    | 0.7039634202215999| 0.9957351040685353| 0.7726957405440454|  0.98430608640107| 8.095422483235922|
    |0.38721961100842617|0.47386287403626837|  0.856405481902437|0.3888408784723435|6.1446425516061955|
    +-------------------+-------------------+-------------------+------------------+------------------+
    

    要测试从 S3 读取它,您可以写入该数据帧并将其读回。

    【讨论】:

    • 你知道在给定模式的情况下使用这种方法生成 JSON 的方法吗?
    • 这可能是可能的。这个架构是什么样的?
    • 比较复杂。它采用标准 JSON 模式格式。以下是一些示例:json-schema.org/learn/miscellaneous-examples.html。我的架构包含带有正则表达式的字段
    • AFAIK,没有采用 JSON 模式并生成数据的内置方法。您必须创建结构和数组并使用rand 或其他类似函数填充自己。如果您在执行此操作时遇到困难,请随时发布更多详细信息。
    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 2020-04-24
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    相关资源
    最近更新 更多