spark sql脚本

shell脚本调用spark-sql #!/bin/sh #set -x ######################### #author : robin #version : v3.0 ######################### #$1 : start time for business circle #$2 : end time for business circle #$3 : start time of slowly changing dimension for SF orginazation #$4 : spark par 阅读详情
##############
# 客户基本属性模型表脚本开发
##############
#!/bin/sh
yesterday=`date -d '-1 day' "+%Y-%m-%d"`
if [ $1 ];then
   yesterday=$1
fi

SPARK_SUBMIT_INFO="/var/local/spark/bin/spark-sql  --master spark://itcast01:7077  --executor-memory $2  --total-executor-cores $3  --driver-class-path /var/local/hive/lib/mysql-connector-java-5.1.35.jar" 
SOURCE_DATA_DIR="/root/source_data"
hdfs dfs -mkdir -p /business/itcast_bdm_user/$1
hdfs dfs -put $SOURCE_DATA_DIR/itcast_bdm_user.txt /business/itcast_bdm_user/$1
#--客户基本属性模型表BDM层
SQL_BDM="
create database if not exists bdm;
drop table if exists  bdm.itcast_bdm_user;
create external table bdm.itcast_bdm_user( 
user_id string			    ,--用户ID
user_name string			,--用户登陆名
user_sex  string			,--用户性别
user_birthday string		,--用户生日
user_age  bigint			,--用户年龄
constellation string		,--用户星座
province string			    ,--省份
city string					,--城市
city_level string			,--城市等级
hex_mail string				,--邮箱
op_mail string				,--邮箱运营商
hex_phone string			,--手机号
fore_phone string			,--手机前3位
op_phone string				,--手机运营商
add_time string				,--注册时间
login_ip string				,--登陆ip地址
login_source string			,--登陆来源
request_user string			,--邀请人
total_mark bigint			,--会员积分
used_mark bigint			,--已使用积分
level_name string			,--会员等级名称
blacklist bigint			,--用户黑名单
is_married bigint			,--婚姻状况
education string			,--学历
monthly_money double		,--收入
profession string			--职业
) partitioned by (dt string)
row format delimited fields terminated by ',';
alter table bdm.itcast_bdm_user add partition (dt='$1') location '/business/itcast_bdm_user/$1';
"


#--客户基本属性表FDM层
SQL_FDM="
create database if not exists fdm;
drop table if exists  fdm.itcast_fdm_user_wide;
create external table fdm.itcast_fdm_user_wide( 
user_id string			    ,--用户ID
user_name string			,--用户登陆名
user_sex  string			,--用户性别
user_birthday string		,--用户生日
user_age  bigint			,--用户年龄
constellation string		,--用户星座
province string			    ,--省份
city string					,--城市
city_level string			,--城市等级
hex_mail string				,--邮箱
op_mail string				,--邮箱运营商
hex_phone string			,--手机号
fore_phone string			,--手机前3位
op_phone string				,--手机运营商
add_time string				,--注册时间
login_ip string				,--登陆ip地址
login_source string			,--登陆来源
request_user string			,--邀请人
total_mark bigint			,--会员积分
used_mark bigint			,--已使用积分
level_name string			,--会员等级名称
blacklist bigint			,--用户黑名单
is_married bigint			,--婚姻状况
education string			,--学历
monthly_money double		,--收入
profession string			,--职业
dw_date  timestamp
) partitioned by (dt string);

--加载数据
insert overwrite table fdm.itcast_fdm_user_wide partition(dt='$1')
select 
t.user_id,
t.user_name,
t.user_sex,
t.user_birthday,
t.user_age,
t.constellation,
t.province,
t.city,
t.city_level,
t.hex_mail,
t.op_mail,
t.hex_phone,
t.fore_phone,
t.op_phone,
t.add_time,
t.login_ip,
t.login_source,
t.request_user,
t.total_mark,
t.used_mark,
t.level_name,
t.blacklist,
t.is_married,
t.education,
t.monthly_money,
t.profession, 
from_unixtime(unix_timestamp())  dw_date 
from bdm.itcast_bdm_user t where dt='$1';
"

#--用户画像-客户基本属性模型表GDM层
SQL_GDM="
create database if not exists gdm;
drop table if exists gdm.itcast_gdm_user_basic;
create external table gdm.itcast_gdm_user_basic( 
user_id string			    ,--用户ID
user_name string			,--用户登陆名
user_sex  string			,--用户性别
user_birthday string		,--用户生日
user_age  bigint			,--用户年龄
constellation string		,--用户星座
province string			    ,--省份
city string					,--城市
city_level string			,--城市等级
hex_mail string				,--邮箱
op_mail string				,--邮箱运营商
hex_phone string			,--手机号
fore_phone string			,--手机前3位
op_phone string				,--手机运营商
add_time timestamp			,--注册时间
login_ip string				,--登陆ip地址
login_source string			,--登陆来源
request_user string			,--邀请人
total_mark bigint			,--会员积分
used_mark bigint			,--已使用积分
level_name string			,--会员等级名称
blacklist bigint			,--用户黑名单
is_married bigint			,--婚姻状况
education string			,--学历
monthly_money double		,--收入
profession string			,--职业
sex_model bigint			,--性别模型
is_pregnant_woman bigint	,--是否孕妇
is_have_children bigint		,--是否有小孩
children_sex_rate double	,--孩子性别概率
children_age_rate double	,--孩子年龄概率
is_have_car bigint			,--是否有车
potential_car_user_rate double,--潜在汽车用户概率
phone_brand string			,--使用手机品牌
phone_brand_level string	,--使用手机品牌档次
phone_cnt bigint			,--使用多少种不同的手机
change_phone_rate bigint	,--更换手机频率
majia_flag string			,--马甲标志
majie_account_cnt bigint	,--马甲账号数量
loyal_model bigint			,--用户忠诚度
shopping_type_model bigint	,--用户购物类型
figure_model bigint			,--身材
stature_model bigint		,--身高
dw_date timestamp
) partitioned by (dt string);


--加载数据
insert overwrite table  gdm.itcast_gdm_user_basic partition(dt='$1') 
select 
t.user_id,
t.user_name,
t.user_sex,
t.user_birthday,
t.user_age,
t.constellation,
t.province,
t.city,
t.city_level,
t.hex_mail,
t.op_mail,
t.hex_phone,
t.fore_phone,
t.op_phone,
t.add_time,
t.login_ip,
t.login_source,
t.request_user,
t.total_mark,
t.used_mark,
t.level_name,
t.blacklist,
t.is_married,
t.education,
t.monthly_money,
t.profession, 
null sex_model,--数据挖掘模型-开始
null is_pregnant_woman,
null is_have_children,
null children_sex_rate,
null children_age_rate,
null is_have_car,
null potential_car_user_rate,
null phone_brand,
null phone_brand_level,
null phone_cnt,
null change_phone_rate,
null majia_flag,
null majie_account_cnt,
null loyal_model,
null shopping_type_model,
null figure_model,
null stature_model,--数据挖掘模型-结束
from_unixtime(unix_timestamp())  dw_date
from (select * from fdm.itcast_fdm_user_wide where dt='$1') t;
"
echo "${SQL_BDM}"
echo "${SQL_FDM}"
echo "${SQL_GDM}"
$SPARK_SUBMIT_INFO  -e "${SQL_BDM} ${SQL_FDM} ${SQL_GDM}"

 

Spark 源码 | 脚本分析总结 最初是想学习一下Spark提交流程的源码,比如 Spark On Yarn 、Standalone。之前只是通过网上总结的文章大概了解整体的提交流程,但是每个文章描述的又不太一样,弄不清楚到底哪个说的准确,比如Client 和 CLuster 模式的区别,Driver到底是干啥的,是如何定义的,为了彻底弄清楚这些疑问,所以决定学习一下相关的源码。因为不管是服务启动还是应用程序启动,都是通过脚本提交的,所以我们先从分析脚本开始。 阅读详情

相关推荐

如何在CDP中使用Spark SQL CLI

在CDP7.1.4中,自带的spark-sql运行会报错,如下图 这是因为在CDP7.1.4中不支持Spark SQL CLI,官网有说明如下 而我们在产品开发过程中,可能需要用到spark-sql来进行数据加工,本文就采用脚本的方式,调用spark-shell来进行数据的处理,执行需要的sql语句。 测试环境: 1.Redhat7.7 2.采用root用户操作 3.CM为7.1.4,CDP为7.1.4 2.解决办法 1.编写脚本spark-sql.

weixin_54707168的博客 1243

大数据技术之SparkSQL(超级详细)

第1章 Spark SQL概述 1.1什么是Spark SQL Spark SQL是Spark用来处理结构化数据的一个模块,它提供了2个编程抽象:DataFrame和DataSet,并且作为分布式SQL查询引擎的作用。 它是将Hive SQL转换成MapRedu

wlove514的博客 1万+

自研SSD固件:从零实现固态硬盘底层存储控制系统

本文探讨了自主开发SSD固件的可行性及实现方案。分析表明,虽然NAND Flash控制协议标准化且存在开源参考实现,但开发仍面临FTL设计复杂度高、性能调优等挑战。推荐采用FPGA平台(如Xilinx Zynq-7000)搭配SLC NAND Flash的方案,预计开发周期9-12个月。系统采用分层架构设计,包含主机接口层、FTL层和闪存接口层,核心模块需实现NAND Flash底层驱动、地址映射管理和垃圾回收等功能。文中提供了关键数据结构和基础驱动代码示例,包括页读写、块擦除等操作。该方案着重解决NAND

电脑管家 1881

spark-SQL-shell操作(超级详细)

用户可以先定义一个简单的Schema,然后逐渐的向Schema中增加列描述。需要注意的是,这些保存模式不使用任何锁定,不是原子操 ,SaveMode详细介绍如下表.加载文件夹,其实原本是加载文件的 ,主要是这个文件名的名字太长,所以就提供了可以使用文件夹。只读取需要的列,支持向量运算,能够获取更好的扫描。)查看 .parquet格式的数据,显示乱码,这个格式如何编写就不演示了。可以跳过不符合条件的数据,只读取需要的数据,降低IO数据量。是自定义的,是标记用的,也是一个文件名,但等号是一定要有的,

互联网知识分享 1996

避开这些坑!baostock获取股票数据时最容易犯的5个错误(Python实战)

本文针对使用Python和baostock库获取股票历史数据时常见的五大陷阱,提供了实战解决方案。重点剖析了登录状态验证、参数配置、数据解析、批量操作效率及数据一致性校验等关键环节,帮助开发者构建稳健高效的数据获取流程,避免因细节疏忽导致的数据错误或性能瓶颈。

websocket5live的博客 1440

如何利用东南大学齿轮箱数据集进行故障诊断?从数据采集到模型训练全流程解析

本文详细解析如何利用东南大学齿轮箱数据集进行故障诊断,涵盖从数据采集到模型训练的全流程。通过信号预处理、特征工程构建及多种机器学习模型对比,帮助开发者高效实现工业设备健康管理。特别适合希望将AI技术应用于工业场景的Python开发者。

m2n3b4v5c6的博客 375

Spark SQL

spark sql( 带源码)

m0_67991849的博客 1574

大模型运维实战:从GPU选型到推理服务稳定落地

大模型服务进入生产环境后,运维对象从传统进程转向GPU显存、KV Cache、推理吞吐等动态资源。显存利用率、首token延迟、并发队列深度等指标,直接影响模型服务的质量与成本。理解推理框架的内存分配机制、掌握监控告警与自动化扩容手段,是保障服务稳定的关键。这类能力广泛应用于企业私有化部署、智能客服、知识库问答等场景,帮助运维团队从被动救火转向主动容量规划与性能调优。本文围绕大模型运维的完整路线,梳理从硬件选型、推理部署到监控排障的实战经验,并算清一份真实项目的长期成本账。

weixin_29054245的博客 238

spark 日期参数传递

11 package com.zz.spark.dm.tag import org.apache.spark.sql.{DataFrame, SparkSession} import java.text.SimpleDateFormat import java.util.{Calendar, Date} object Demo1 { def main(args: Array[String]): Unit = { val spark = SparkSession.builder

MusicDancing的博客 1896

CVAT自动标注避坑指南:从nuctl安装到YOLOv5模型部署的完整流程

本文详细介绍了在CVAT中部署YOLOv5自动标注功能的完整流程与避坑指南。重点解决了从nuctl工具安装、项目创建时因网络问题导致的镜像拉取失败,到最终模型函数部署与CVAT集成的关键步骤。针对国内网络环境,提供了实用的镜像替换方案,帮助用户顺利完成基于CPU的自动化标注环境搭建。

pytorch8learner的博客 229

波士顿房价预测分析----以线性回归LinearRegression为例

波士顿房价数据集包括506个样本,每个样本包括13个特征变量和该地区的平均房价,房价显然和多个特征变量相关,先选择一元线性回归与多个特征建立线性方程,观察模型预测的好坏,再选择多元线性回归进行房价预测。13个特征变量缩写含义CRIM城镇人均犯罪率ZN住宅用地所占比例INDUS城镇中非住宅用地所占比例CHAS虚拟变量,用于回归分析NOX环保指数RM每栋住宅的房间数AGE1940 年以前建成的自住单位的比例DIS距离 5 个波士顿的就业中心的加权距离RAD。

我走的每一步都算数 842

spark-sql shell 脚本配置,稍后补充

spark-sql  shell 脚本的配置。

myrainblues的专栏 1495

vue2/3 - 详细实现内网使用离线高德地图功能,在vue中无需网络离线使用高德地图相关功能,高德地图如何离线加载详细教程(内网部署及使用),提供最新完整的瓦片资源下载及相关工具(示例代码,一键复制

vue,vue2,vue3,高德地图,离线使用高德地图,高德地图瓦片官方下载,vue内网使用高德地图离线无网络,断网情况下使用高德地图,vue离线高德地图教程,如何实现内网部署高德地图,无需联网离线使用,vue+ts实现离线高德地图 内网离线高德地图,如何在高德地图Vue项目中下载离线地图,高德离线地图加载不出来,高德地图离线使用不显示怎么办,怎么解决vue内网使用离线高德地图加载失败问题,vue实现离线地图+高德瓦片,vue引入高德离线地图,vue项目如何使用离线高德地图和自定义地图样式,高德离线地图的下

✅ 精选推荐文章 1万+

spark-sql运行脚本报错 tasks bigger than bigger than spark.driver.maxResult

spark-sql执行脚本,导出数据的脚本爆出如下异常; Caused by: org.apache.spark.SparkException:Job aborted due to stage failure: Total size of serializedresults of 1212tasks (10300 MB) is bigger thanspark.driver.maxResul...

天龙八部 946

深度学习-176-知识图谱技术之langchain与neo4j的嵌入向量Neo4jVector

使用Neo4jVector将输入的文档向量化,并创建向量索引,然后进行语义检索。

qq_20466211的博客 440

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

在 spark-sql / spark-shell / hive / beeline 中粘贴 sql、程序脚本时的常见错误

一个很小的问题,简单记录一下。有时候我们会粘贴一段已经成功运行过的SQL或程序脚本,但是在spark-sql / spark-shell / hive / beeline 中执行时可能会报这样的错误: hive> CREATE EXTERNAL TABLE IF NOT EXISTS ORDERS( > Display all 641 possibilities? (y or n)

Laurence的技术博客 1728

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Scriptis核心功能详解:如何高效管理SQL、Spark和HiveQL脚本开发

Scriptis是一款强大的交互式数据分析工具,专为SQL、Pyspark和HiveQL脚本开发设计,提供任务提交、UDF管理、函数资源管理和智能诊断等一站式解决方案。无论是数据分析师还是开发人员,都能通过Scriptis显著提升数据处理效率,轻松应对复杂的大数据分析任务。 ## 一、多语言脚本开发环境:一站式编码体验 ✨ Scriptis提供了全面的多语言支持,涵盖SQL、Python、Sc

gitblog_00212的博客 803

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

spark-sql执行hivesql

spark提交命令有spark-shell、spark-submit、spark-sql,spark-sql的提交命令很少见吧,不过已经被我发掘出来了。 我们执行hive命令一般都是 hive -e 'select * from xx' 或者 hive -f /home/hadoop/xx.hql -d dt=2018-01-01 但是hive底层使用mr执行速度实在不忍直视,安装hi...

a_hui_tai_lang的博客 5955

【Spark2参数调优】submit Spark sql脚本并行度调优

spark2 submit Spark sql脚本并行度调优疑问:关于spark.default.parallelism现象 :每个executor所分配的core小于active task的数量解决:指定spark.sql.shuffle.partitions数量 都说程序员不配享受生活,最近几个月一直在吃“两条线”,白天挖焦煤,晚上扒火车,真是比铁道游击队还苦逼! 疑问:关于spark.d...

Jack_Roy的博客 1万+

spark任务shell运行_基于sparksql调用shell脚本运行SQL

[Author]: kwu基于sparksql调用shell脚本运行SQL,sparksql提供了类似hive中的 -e , -f ,-i的选项1、定时调用脚本#!/bin/sh# upload logs to hdfsyesterday=`date --date=‘1 days ago‘ +%Y%m%d`/opt/modules/spark/bin/spark-sql -i /opt/bin/...

weixin_32137855的博客 1736

spark-以cluster模式执行spark sql 工具

在spark开发过程中 如果遇到spark-sql 命令无法使用或者需要通过cluster模式提交任务的情况下 可以使用以下工具, 在sparksql.sh中配置spark-submit 参数 然后执行脚本 ./sparksql.sh “$(cat sql.txt)” 调用spark sql import org.apache.log4j.{Level, Logger} import org...

program哲学 3291

Spark sql 常见问题及优化

目录数据倾斜1.null值的处理2.持续整理中... 数据倾斜 1.null值的处理 INSERT OVERWRITE TABLE tf_lte_prd_pd_inst_month PARTITION (month_id) SELECT prvnce_id, std_prvnce_cd ,... FROM ( SELECT '${V_DATE}' month_id ,..., C...

Jhon_yh的博客 3718

submit Spark sql脚本并行度调优

添加链接描述

weixin_43995212的博客 319

spark sql 执行hql

在shell脚本中,hql使用 $hive -e "$sql" 这里将hive的mr替换为spark 前提条件,配置好spark on hive 将$hive 替换为$spark-sql就可以了 如果遇到小文件过多的问题,在sql中设置set spark.sql.shuffle.partitions=100; ...

sunlang的博客 826
上一篇: hive中操作表语句
下一篇: hive整合hbase
刘sir--
博客等级 码龄9年 20粉丝 33原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值