json - 在 S3 中生成大量样本数据以供 Spark 使用?
问题描述
我有一个当前的火花管道,它在相对少量的数据上运行。对这么多数据的性能测试只能让我到目前为止,理想情况下我想在大量数据上测试火花管道。
是否有任何方法或工具可以模拟或模拟大量输入数据以供 spark 处理,尤其是当输入来自 Amazon S3 时?当我开始获得更多数据时,我不希望火花爆炸。
如果有帮助,我有一个输入数据必须遵守的 JSON 模式。
我不介意解决方案是否涉及在 spark 本身中生成假输入数据或在 s3 上生成假输入数据。
解决方案
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 读取它,您可以写入该数据帧并将其读回。
推荐阅读
- python - 在 Python 中更改 Windows 10 背景纯色
- gensim - 您能否使用 TaggedLineDocument 为文档提供额外的标签?
- json - 如何让ajv-cli考虑格式
- c - 用于查找最大可除数的 c 程序不起作用
- java - 架构的 Java 进程构建器问题
- sql - SQL 中针对 MIN、MAX 和 AVG 的分析查询
- java - 用于限制对 Java 中方法的访问的设计模式
- java - “未能执行目标 org.apache.maven.plugins:maven-jar-plugin:2.4:jar (default-jar)”为什么?
- javascript - 链接有eventListener,我点击它激活的孩子,但我没有得到href
- python - 使用python读取github私有原始文件,返回源代码不执行代码