在以下任务上需要建议:从大量SQL表中合并和提取产品数据。这些表中的记录包含产品ID和该产品的不同属性。结果数据应存储在HDFS表中,其中任何给定记录都代表与给定产品相关的所有属性。结果记录可能具有可变数量的属性。例如:
Input SQL records:
Table 1
Rec 1: |ProdId|x11|x12|x13|...|x1N|
Rec 2: |ProdId|x21|x22|x23|...|x2N|
....
Rec M: |ProdId|xM1|xM2|xM3|...|xMN|
Table 2
Rec 1: |ProdId|y11|y12|y13|...|y1K|
Rec 2: |ProdId|y21|y22|y23|...|y2K|
....
Rec L: |ProdId|yL1|yL2|yL3|...|xLK|
....
....
....
Table Z
Rec 1: |ProdId|z11|z12|z13|...|z1Q|
Rec 2: |ProdId|z21|z22|z23|...|z2Q|
....
Rec P: |ProdId|zL1|zL2|zL3|...|zPQ|
Output HDFS Table:
Rec 1: |ProdId|x11|x12|x13|...|x1N|y11|y12|y13|...|y1K|z11|z12|z13|...|z1Q|
Rec 2: |ProdId|x21|x22|x23|...|x2N|y21|y22|y23|...|y2K|z21|z22|z23|...|z2Q|
....
Rec R: |ProdId|xI1|xI2|xI3|...|xMN|yJ1|yJ2|yJ3|...|xLK|zF1|zF2|zF3|...|zFQ|
结果记录应具有命名字段并存储在HDFS中,因此可以轻松地用Scala / Java / Python编写的map / reduce作业使用。
我是Hadoop的新手,可能是错误的。在我看来,使用Hive进行这项工作显得有些尴尬。 Map-reduce很好用,但是我看不到如何用勺将输入的SQL数据导入到具有命名字段的其他Hive表中。有什么方法可以将SQL表导出到HBASE,该表将自动重建字段名称?是否有其他适合支持命名字段的任务的键值存储?理想情况下,将是找到可以在Scala或Python中完成此工作的框架。
最佳答案
AFAIK,此任务通常由scoop工具执行。它原本是used from cmd,但是用Scala扩展它是完全可能的,因为它是用Java编写的。
关于python - 使用Scala/Python将产品数据从众多SQL表中合并并提取到Hadoop键值存储中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21859144/