【问题标题】:Apache Spark: Which data storage and data format to chooseApache Spark:选择哪种数据存储和数据格式
【发布时间】: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


【解决方案1】:

您可以使用 spark 毫无问题地处理该数据。您也可以从 csv 文件中读取(databricks 中有一个支持 csv 的库)。您可以从 rdd 开始操作它,更接近将其转换为数据框。您可以将最终的数据帧直接放入 HBASE。 您可以在此处找到所有需要的文档: http://spark.apache.org/docs/latest/sql-programming-guide.html https://www.mapr.com/blog/spark-streaming-hbase

干杯, 亚历克斯

【讨论】:

猜你喜欢
  • 2018-05-01
  • 1970-01-01
  • 2012-05-15
  • 2020-08-21
  • 1970-01-01
  • 2018-11-17
  • 2016-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多