载入数据

使用命令行加载csv数据

  1. 使用Hbase Shell创建一个表gdp,列族有info.
create 'gdp','info'

或者使用JAVA API创建表单,配置就不写了

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import java.io.IOException;
import java.net.URISyntaxException;
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.filter.Filter;

public class HelloHBase {
	  public static void main( String[] args ) throws URISyntaxException, IOException
	    {
		  Configuration config=HBaseConfiguration.create();
		  config.addResource(
				  new Path(ClassLoader.getSystemResource("hbase-site.xml").toURI()));
		  config.addResource(
				  new Path(ClassLoader.getSystemResource("core-site.xml").toURI()));
          Connection connection=ConnectionFactory.createConnection(config);
          
          TableName tableName=TableName.valueOf("gdp");
          HTableDescriptor table=new HTableDescriptor(tableName);
          HColumnDescriptor mycf = new HColumnDescriptor("info");
          table.addFamily(new HColumnDescriptor(mycf));
          Admin admin=connection.getAdmin();
          admin.createTable(table);
          admin.close();
          connection.close();
         
	    }
}

  1. 把当前目录下文件传入HDFS /input/目录中中
hadoop@Master:~/test/hbase$ hdfs dfs -put gdp.csv /input/
  1. 使用如下命令将数据从hdfs加载至表单中.
    前面一半表示用逗号分隔,后面columns 表示将csv数据的每一列划分为列族中的列.这里我使用了省份作为Row_key,由于数据小,且联系密切,就把它们都放到了一个列族中.
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=',' -Dimporttsv.columns=HBASE_ROW_KEY,info:date,info:number gdp /input/gdp.csv

下面是shell描述
在这里插入图片描述
可以从Hue看到数据的格式。
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐