"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()
我不确定这个标题是否正确,所以请随时提出修改建议。顺便说一句,我真的是 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()