Hive使用shell调用命令行特殊字符处理

news2024/11/18 1:48:58

img

1.场景分析

数据处理常用hive -e的方式,通过脚本操作数仓,过程中常常遇到特殊字符的处理,如单双引号、反斜杠、换行符等,现将特殊字符用法总结使用如下,可直接引用,避免自行测试的繁琐。

2.特殊字符处理

#!/bin/bash
if [ -n "$1" ] ;then
   do_date=$1
   date1=${do_date: 0: 8}
   date2=`date -d "+1 day $date1" +%Y%m%d
else
   date1=`date -d "-1 day" +%Y%m%d`
   date2=`date +%Y%m%d`
fi
sql="
#设置不打印表头
set hive.cli.print.header=false;
select
 \`timestamp\`,
#双引号中嵌套双引号,需要加反斜杠
    concat('[1,\"------------------id=123212-------------------\\\n' ,concat_ws('\\\n',collect_list(content)),'<NE><NE><NE>\\\n\"]') content
from temp_table;
"
echo $qingsu_data
hive  -S -e "$sql" >  /data/$date2.jsonl

输出内容为:

1702006716111,[1,"-------------------id=123212-------------------\n学生: 老师你好。\n老师: 你说。\n学生: 我自己的人生是一塌糊涂。\n老师: 说说看,为什么一塌糊涂?\n<NE><NE><NE>\n"]

假如直接写\n,则

#!/bin/bash
sql="
select
    \`timestamp\`,
    concat('[1,\"------------------id=123212-------------------\n' ,concat_ws('\n',collect_list(content)),'<NE><NE><NE>\n\"]') content
from temp_table;
"
echo $qingsu_data
hive  -S -e "$sql" >  /data/$date2.jsonl

输出内容为:

1702006716111,[1,"-------------------id=123212-------------------
学生: 老师你好。
老师: 你说。
学生: 我自己的人生是一塌糊涂。
老师: 说说看,为什么一塌糊涂?
<NE><NE><NE>
"]

3.总结

  • (`)撇号在shell中使用需要用反斜杠转义
  • (")双引号中嵌套双引号需要用反斜杠转义
  • (')单引号中嵌套双引号需要用反斜杠转义
  • (/)反斜杠作为字符使用中使用需要两个反斜杠转义
  • 预留关键字使用两侧需要使用(`)撇号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1390272.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

获取当前设备的IP

背景&#xff1a; 在本地使用自带webUI的项目时&#xff0c;需要制定webUI的访问地址。 一般本地访问使用&#xff1a;127.0.0.1&#xff0c;配置为可以从其他设备访问时&#xff0c;需要指定当前设备的IP&#xff0c;或者指定为0.0.0.0。 例如&#xff1a;使用locust的时候&a…

中间件框架知识进阶

概述 近期从不同渠道了解到了一些中间件相关的新的知识&#xff0c;记录一下收获。涉及到的中间件包括RPC调用、动态配置中心、MQ、缓存、数据库、限流等&#xff0c;通过对比加深理解&#xff0c;方便实际应用时候更明确如何进行设计和技术选型。 一、RPC框架中间件系列 1、…

slint 1.3.2 官方文档翻译04

主要使用 有道翻译。希望能够对 初学者 有所帮助 翻译自&#xff1a;Builtin Enumerations - Slint 1.3.2 Reference Builtin Enumerations 内置的枚举 AccessibleRole 可访问角色 This enum represents the different values for the accessible-role property, used to d…

新手学习指南:用Scala采集外卖平台

学习爬虫不是一蹴而就的&#xff0c;在掌握相关的知识点的同时&#xff0c;还要多加练习&#xff0c;学习是一部分&#xff0c;更多的还是需要自己上手操作&#xff0c;这里配合自己学习的基础&#xff0c;以及使用一些爬虫的专有库&#xff0c;就可以轻松达到自己想要的数据。…

DaisyDisk for mac 中文激活版 可视化磁盘清理工具

DaisyDisk 是一款专为 Mac 设计的磁盘空间分析工具。它以直观、图形化的方式展示硬盘使用情况&#xff0c;帮助用户迅速找到占用空间大的文件和文件夹。通过扫描磁盘&#xff0c;DaisyDisk 生成彩色的扇形图表&#xff0c;每个扇区代表一个文件或文件夹&#xff0c;大小直观反映…

leetcode 67. 二进制求和

一、题目 二、解答 1.思路 1.1 思路1 转成2个二进制数字相加&#xff0c;之后再转回字符串 1.2 思路2 遍历字符串挨个相加&#xff1a; 补齐2个字符串到同样长度 while循环&#xff0c;如果指针>0不断循环如果a短&#xff0c;给字符串前插入&#xff08;a长度-b长度&a…

Chrome禁用第三方Cookie,有什么影响?

2024年&#xff0c;Chrome将要正式禁用第三方Cookie了&#xff0c;这个变化对Web开发者来说是非常重要的&#xff0c;因为它将改变开发者如何设计网站以及如何搜集和使用用户数据。这是怎么一回事&#xff0c;到底有什么具体影响&#xff1f; 什么是Cookie&#xff1f; 随着互…

python flask学生管理系统

预览 前端 jquery css html bootstrap: 4.x 后端 python: 3.6.x flask: 2.0.x 数据库 mysql: 5.7 学生管理模块 登录、退出查看个人信息、修改个人信息成绩查询查看已选课程选课、取消选课搜索课程课程列表分页功能 教师模块 登录、退出查看个人信息、修改个人信息录入…

Gazebo的模型下载。

git clone zouxu634866/gazebo_modelshttps://gitee.com/zouxu6348660/gazebo_models.git&#xff0c;并完成路径配置。 &#xff08;本文提供了gitee下载&#xff0c;国外的Github下载较慢。&#xff09;

JDK8-JDK17版本升级

局部变量类型推断 switch表达式 文本块 Records 记录Records是添加到 Java 14 的一项新功能。它允许你创建用于存储数据的类。它类似于 POJO 类&#xff0c;但代码少得多&#xff1b;大多数开发人员使用 Lombok 生成 POJO 类&#xff0c;但是有了记录&#xff0c;你就不需要使…

通过生成mcs、bin文件将程序固化到FPGA

通过将程序固化到FPGA&#xff0c;可以做到断电不丢失程序&#xff0c;上电之后就自动启动程序的作用&#xff0c;整个固化步骤主要分为3步&#xff0c;一是修改约束文件&#xff0c;二是生成mcs或bin文件&#xff0c;三是将程序固化到开发板flash 1.修改约束文件 生成固化文…

meter报OOM错误,如何解决?

根据在之前的压测过程碰到的问题&#xff0c;今天稍微总结总结&#xff0c;以后方便自己查找。 一、单台Mac进行压测时候&#xff0c;压测客户端Jmeter启动超过2000个线程&#xff0c;Jmeter报OOM错误&#xff0c;如何解决&#xff1f; 解答&#xff1a;单台Mac配置内存为8G&…

蓝桥杯准备

书籍获取&#xff1a;Z-Library – 世界上最大的电子图书馆。自由访问知识和文化。 (zlibrary-east.se) 书评&#xff1a;(豆瓣) (douban.com) 一、观千曲而后晓声 别人常说蓝桥杯拿奖很简单&#xff0c;但是拿奖是一回事&#xff0c;拿什么奖又是一回事。况且&#xff0c;如果…

liunx安装redis

安装redis 1.向Xftp7上传Redis压缩包 进行解压&#xff1a;tar -zxvf redis-6.0.8.tar.gz 解压后预编译&#xff1a; cd redis-6.0.8 make 创建文件: mkdir -p /opt/redis 安装到指定目录: make install PREFIX/opt/redis 进入安装文件 bin 目录:cd /opt/redis/bin ./redis-se…

【python入门】day27: 模拟高铁售票系统

界面 代码 #-*- coding:utf-8 -*- import prettytable as pt#---------导入漂亮表格 import os.path filename ticket.txt#更新座位状态 def update(row_num):#------更新购票状态with open(filename,w,encodingutf-8) as wfile:for i in range(row_num):lst1 [f{i1},有票,有…

Springboot + websocket 实现 一对一 单人聊天

Springboot websocket 实现 一对一 单人聊天 要使用websocket ,需要添加 jar 打开项目中的pom.xml,添加以下内容 创建java端代码 配置websocke的endpoints 配置websocket的server ServerEndpoint(value "/websocket/{username}") 这句话 一定要注意, 这里 路…

寻找峰值题目解析

一、题目描述 162. 寻找峰值 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums&#xff0c;找到峰值元素并返回其索引。数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] nums[n] -∞ …

hcip-4

ISIS:中央系统到中央系统 基于OSI模型开发&#xff1b; 集成的ISIS&#xff0c;基于OSI开发后转移到TCP/IP模型执行&#xff1b; 故集成的ISIS既可以在OSI模型&#xff0c;也可在TCP/IP模型工作&#xff1b; ISIS是在ISP中使用的一个IGP协议&#xff0c;其归属于无类别链路状…

x-cmd pkg | duf - df 命令的现代化替代品

目录 简介用户首次快速实验指南技术特点竞品和相关作品进一步探索 简介 Duf &#xff08;Disk Usage/Free Utility&#xff09;是一个磁盘分析工具。其直观的输出和多样化的自定义选项&#xff0c;帮助用户更好地管理和优化存储资源。 用户首次快速实验指南 使用 x duf 即可自…

系统性学习vue-组件及脚手架

书接上文 Vue组件及脚手架 初始化脚手架说明步骤 分析脚手架结构render函数修改默认配置ref属性props配置mixin 混入/混合定义混合局部混合全局混合 插件scoped样式安装less-loader 浏览器的本地存储 webStoragelocalStroage 本地存储sessionStorage 会话存储 组件自定义事件绑…