如何使用pyspark从HBase表中读取数据?

时间:2017-12-05 13:19:54

标签: apache-spark pyspark hbase

我创建了一个名为emp的虚拟HBase表,其中包含一条记录。以下是数据。

> hbase(main):005:0> put 'emp','1','personal data:name','raju' 0 row(s)
> in 0.1540 seconds
> hbase(main):006:0> scan 'emp' ROW 
> COLUMN+CELL  1                                       column=personal
> data:name, timestamp=1512478562674, value=raju 1 row(s) in 0.0280
> seconds                                  

现在,我使用HBasepySparkshc之间建立了联系。您可以帮助我使用代码在HBase table中阅读上述dataframe PySpark

版本细节:

Spark Version 2.2.0, HBase 1.3.1, HCatalog 2.3.1

1 个答案:

答案 0 :(得分:0)

您可以尝试这样

pyspark --master local --packages com.hortonworks:shc-core:1.1.1-1.6-s_2.10 --repositories http://repo.hortonworks.com/content/groups/public/ --files /etc/hbase/conf.cloudera.hbase/ hbase-site.xml

empdata = ''.join("""
    {
        'table': {
            'namespace': 'default',
            'name': 'emp'
        },
        'rowkey': 'key',
        'columns': {
            'emp_id': {'cf': 'rowkey', 'col': 'key', 'type': 'string'},
            'emp_name': {'cf': 'personal data', 'col': 'name', 'type': 'string'}
        }
    }
""".split())

df = sqlContext \
    .read \
    .options(catalog=empdata) \
    .format('org.apache.spark.sql.execution.datasources.hbase') \
    .load()

df.show()

[请参阅此博客以获取更多信息]

https://diogoalexandrefranco.github.io/interacting-with-hbase-from-pyspark/