Mysql通过sqoop导入到hdfs,hive建表导入hdfs路径的数据,hive通过sqoop导出到mysql。
导出:
sqoop 推送mysql数据到hive中:
sqoop export
--connect "jdbc:mysql://localhost:3306/hoteldata?useUnicode=true&characterEncoding=utf-8"
--username root
--password root
--table rawdata
--input-fields-terminated-by "," -
--export-dir "/user/hive/warehouse/hoteldata.db/rawdata"
将hive的数据导出到mysql:是通过hdfs中的路径导入到mysql中。
导入:
如果mysql中的表没有主键,需要指定–split-by
sqoop import
--connect "jdbc:mysql://192.168.3.25:3306/jd_hotel"
--username root
--password 123456
--table tbl_hotel
--target-dir /h3c/s3/jd_hotel
--split-by id
导出分隔符:
–fields-terminated-by ‘|’
–lines-terminated-by '\n’
解析数字时遇到了None,在pyspark里导出来的空值可能是被替换成None.
–input-null-string ‘None’ --input-null-non-string ‘None’ 通过这个参数指定None作为空的值
–split-by id 划分id自动分成n个map来进行数据导入