【发布时间】:2015-05-31 10:57:36
【问题描述】:
我有大约 4gb 的文本文件,我会对其进行解析并将数据保存在数据库中。这个过程几乎需要 3-4 小时(5-6 百万行)来处理和保存数据库中的数据。这是一个日常过程。
现在,当我查询数据库时,它会花费太多时间来计算结果并返回。就像我对某一天做一个简单的 avg, sum 运算需要 30-40 分钟。
我现在正在使用python,mysql。尝试 Spark 也做这个计算也需要 30-40 分钟,现在数据在增加,所以文件大小会增加,它会像 10gb,spark 无法处理大文件。
请建议我如何改进解析、存储在数据库中和获取时间的时间。
【问题讨论】:
-
您是否尝试过 Hadoop 或类似的 map-reduce 方法来并行处理您的数据?
-
我使用 Spark 因为一些在线讨论我发现它比 Hadoop 更好,databricks.com/blog/2014/10/10/spark-petabyte-sort.html不确定 Hadoop 或 map reduce。
-
您可以使用github.com/databricks/spark-csv 来加载您的CSV 文件。如果您使用 DataFrame API,与使用 Python 的普通 API 相比,您应该会看到相当不错的性能提升。
-
“spark 无法处理大文件” 这是错误的。 Spark 是专门用于处理大数据的解决方案。您刚刚链接到一个排序 1 PB 的帖子。
标签: performance apache-spark database-tuning large-data