1

我正在尝试从 HBase 读取数据,对其进行处理,然后写入 Hive。我是 Scalding 和 Scala 的新手。

我已经查看了SpyGlass以从 HBase 读取数据。它运行良好,我可以读取数据,然后将其写入文件。

val data = new HBaseSource(
tableName,
hbaseHost,
SCHEMA.head,
SCHEMA.tail.map((x: Symbol) => "data"),
SCHEMA.tail.map((x: Symbol) => new Fields(x.name)),
sourceMode = SourceMode.SCAN_ALL)
.read
.fromBytesWritable(SCHEMA)
.debug
.write(Tsv(output.format("get_list")))

所以现在的问题是我如何将它写入 Hive。如果有人设法做到这一点,我将不胜感激一个简单的例子或一些帮助来实现这一点。

4

1 回答 1

1

您实际上不需要做任何特别的事情来写入 Hive - 您当前的代码绝对没问题。Hive 只是在 HDFS 中存储的数据之上应用元数据。您需要做的就是在您正在编写的数据之上创建一个 Hive 表。您有两个主要选择。如果要将数据移动到 Hive 仓库,则需要使用以下命令将其加载:

load data inpath '/your/file/or/folder/on/the/hdfs' into table your_table;

如果您不想移动数据,您可以创建一个不移动数据的外部Hive 表。外部表的优点是

  • 您不必将数据加载到其中,
  • 删除表不会删除数据。
于 2015-02-20T17:50:58.850 回答