服务器本地文件加载到CarbonData与简单sql编写记录
一、加载文件到CarbonData:
1、首先可以传送文件到大数据平台,命令如下:
scp -r -P 端口号 主机名:/本地目录/完整的文件名 ~/服务器目录/
2、服务器上传本地文件到HDFS,命令如下:
hdfs dfs -put ~/服务器本地目录/完整的文件名称 /user/hdfs/hdfs下的目录
3、导入hdfs文件到CarbonData,首先需要启动Spark。
第一步:
cd $SPARK_HOME;
第二步:
./bin/spark-shell --master yarn-client --driver-memory 1g --executor-cores 2 --executor-memory 2G
第三步:
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.CarbonSession._
val carbon = SparkSession.builder().config(sc.getConf).getOrCreateCarbonSession()
第四步:
创建数据库表
carbon.sql(s"""CREATE TABLE
IF NOT EXISTS 数据库.表名(
shopid string,
url string,
price string,
title string,
count string,
createtime string,
goodsid string)
STORED BY 'carbondata'""".stripMargin)
注:
创建错数据库表,可以使用如下命令删除。
carbon.sql("drop table 数据库.表名");
验证数据库表的语句。
carbon.sql("use 数据库")
carbon.sql("show tables").show
4、加载数据到CarbonData,命令如下:
carbon.sql(s"""load data inpath 'hdfs://主机ip:端口/user/hdfs/hdfs上的目录/完整的文件名'
into table 数据库.表名 OPTIONS('GLOBAL_SORT_PARTITIONS'='2','HEADER'='false',
'DATEFORMAT' = 'yyyy-MM-dd','TIMESTAMPFORMAT'='yyyy-MM-dd HH:mm:ss',
'BAD_RECORDS_LOGGER_ENABLE'='true', 'BAD_RECORD_PATH'='hdfs://主机ip:端口/user/错误文件_error',
'BAD_RECORDS_ACTION'='REDIRECT')""".stripMargin);
5、扩展:
查看csv文件一共有多少行数据,使用如下命令:
wc -l xxx.csv
二、hdfs和sql的一些简单操作:
1、创建hdfs文件夹命令:
hdfs dfs -mkdir -p /user/hdfs/文件夹目录/
2、sql的搭配使用:
①、从一张表获取多少条数据插入到另一张表(条件:表1中没有,从表2插入数据到表1)。
insert into table 表1
select a.* from 表2 a
left join 表1 b on a.goodsid=b.goodsid
where b.goodsid is null limit 30000000
②、按条件查询店铺数据(条件:一张表,查询店铺销售额小于30000的店铺数量)。
select count(1) from
(select shopid,sum(count) as shop_totalcount from 表名 group by shopid having shop_totalcount<30000) as a
③、按条件查询店铺数量(条件:两张表,查询店铺销售额小于30000的店铺数量)。
select count(1) from
(select shopid,sum(sold*price) as shop_totalcount from
(SELECT * FROM 表1
UNION ALL
SELECT * FROM 表2)
group by shopid having shop_totalcount<30000) as a
温馨提示:该文章为本人自己创作,转载请标明出处。感谢各位!!!谢谢大家!!!
本人联系方式:
QQ:961094233
邮箱:961094233@qq.com