python - 使用Scala/Python将产品数据从众多SQL表中合并并提取到Hadoop键值存储中

标签 python scala hadoop

在以下任务上需要建议:从大量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/

相关文章:

python - 使用 AutoIt Python 将数据发送到窗口

python - 图例透明度,使用次轴时

python - self.attr 在 unittest.TestCase 中的测试之间重置

scala - Slick中如何进行版本并发控制?

Scala 喷雾路由语法

scala - Spark 中的低 CPU 使用率

python - 'or' 元组的大多数 pythonic 方式?

斯卡拉克 : Assertion failed while run Scalatest in IDEA

java - 当我在 mapreduce 框架中设置 Split size 大于实际 Block size 时会发生什么?

hadoop - 如何确定Hadoop作业为何挂起?