【发布时间】:2016-11-08 14:34:06
【问题描述】:
我将使用 Spark 编写一个销售分析应用程序。因此,我每晚都会得到一个包含新销售数据(前一天的销售)的增量数据集。后来我想实现一些分析,比如关联规则或产品的流行度。
销售数据包含以下信息:
- 商店 ID
- 文章组
- 现金点的时间戳
- 文章 GTIN
- 金额
- 价格
到目前为止,我在我的应用程序中使用了一个简单的 .textFile 方法和 RDD。我听说过一些关于 DataFrame 和 Parquet 的东西,这是一种用于文本文件的类似表格的数据格式,对吧?将数据存储在数据库中一次(我在 Hadoop 集群中安装了 HBase)然后再读取呢?
有人可以简要介绍一下 Spark 中不同类型的保存/加载可能性吗?并推荐如何处理这些数据?
data-mount 实际约为 6 GB,代表 3 个 store 约 1 年的数据数据。稍后我将使用约 500 家商店和约 5 年时间段的数据。
【问题讨论】:
-
Parquet 是一种更好的格式,因为它是柱状且可拆分的。压缩文本文件 (csv) 不可拆分。您可以考虑按日期/存储 id 对数据进行分区,并将其作为 parquet 存储在 hdfs 中。 Spark 可以使用动态分区编写 parquet。然后,您可以使用 Impala 或 hive 查询此数据。建议在查询中使用分区。
标签: hadoop apache-spark dataframe hbase hadoop2