"Enrich" 来自另一个 DF(或来自 HBase)的 Spark DataFrame

"Enrich" Spark DataFrame from another DF (or from HBase)

我不确定这个标题是否正确,所以请随时提出修改建议。顺便说一句,我真的是 Scala 和 Spark 的新手。

基本上,我有一个 DF df_1 看起来像这样:

| ID | name | city_id | | 0 | "abc"| 123 | | 1 | "cba"| 124 | ...

city_id 是一个巨大的 HBase 中的键:

123;纽约; .... 124;洛杉矶; ....等等

结果应该是df_1:

| ID | name | city_id | | 0 | "abc"| New York| | 1 | "cba"| Los Angeles| ...

我的方法是使用我需要的列在 HBase 之上创建一个外部 Hive table。但话又说回来,我不知道如何以最有效的方式加入他们。

我想有一种方法可以直接从 HBase 执行此操作,但我还是不知道如何操作。

如有任何提示,我们将不胜感激。 :)

无需在 hbase 上创建迭代配置单元 table。 Spark sql 可以直接处理各种非结构化数据。只需使用 hbase data source

将 hbase 数据加载到数据框中

一旦你有了正确的 hbase 数据框,使用下面的 示例 spark-scala 代码以获取连接的数据帧:

val df=Seq((0,"abc",123),(1,"cda",124),(2,"dsd",125),(3,"gft",126),(4,"dty",127)).toDF("ID","name","city_id")

 val hbaseDF=Seq((123,"New York"),(124,"Los Angeles"),(125,"Chicago"),(126,"Seattle")).toDF("city_id","city_name")

 df.join(hbaseDF,Seq("city_id"),"inner").drop("city_id").show()