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

img

1.场景分析

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

2.特殊字符处理

#!/bin/bash
if [ -n "$1" ] ;thendo_date=$1date1=${do_date: 0: 8}date2=`date -d "+1 day $date1" +%Y%m%d
elsedate1=`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.mzph.cn/news/628148.shtml

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

相关文章

16.桥接模式

桥接模式 介绍 桥接模式是一种结构型设计模式&#xff0c;它通过将抽象部分与实现部分分离&#xff0c;使它们可以独立变化。这种模式通过组合的方式来实现&#xff0c;而不是继承。桥接模式通过将抽象和实现解耦&#xff0c;从而实现抽象和实现的分离&#xff0c;使得系统更加…

Java基础-Java基础知识-运算符-笔记

1.运算符 算数运算符&#xff1a; - * / % 赋值运算符&#xff1a; 定义变量的语法规则&#xff1a;类型 变量名 变量值 比较运算符&#xff1a;> < > < ! 逻辑运算符&#xff1a; &&&#xff1a;断路与&#xff0c;两边全…

Java零基础——Vue基础篇

1.【熟悉】Vue简介 1.1 简介 它是一个构建用户界面单页面的框架 Vue是一个前端框架 https://www.pmdaniu.com/#file UI网站 UI 一般开发者使用蓝湖 工具 看着UI图 写接口 https://lanhuapp.com/web/#/item 是一个轻量级的MVVM&#xff08;Model-View-ViewModel&#xff…

Spring Boot - Application Events 的发布顺序_ApplicationStartingEvent

文章目录 概述Code源码分析 概述 Spring Boot 的广播机制是基于观察者模式实现的&#xff0c;它允许在 Spring 应用程序中发布和监听事件。这种机制的主要目的是为了实现解耦&#xff0c;使得应用程序中的不同组件可以独立地改变和复用逻辑&#xff0c;而无需直接进行通信。 …

MySQL——锁

1 全局锁 上锁后&#xff0c;整个数据库处于只读状态 flush tables with read lock 释放&#xff1a; unlock tables 应用&#xff1a;用于全库逻辑备份 缺点&#xff1a;如果数据量很大&#xff0c;备份会花很多时间&#xff0c;只能读数据&#xff0c;造成业务停滞 如…

SpringBoot 基础介绍以及相关可实现的功能思路

文章目录 简介start 依赖自定义Banner日志管理devtools统一返回接口接口参数校验自定义异常调用远程接口使用 简介 Spring Boot 是基于Spring的开发开发框架&#xff0c;Spring 的缺点是具有大量的配置文件&#xff0c;使用 SpringBoot 约定大于配置&#xff0c;可以让开发者专…

VMware虚拟机忘记密码操作方法

下面已openEuler虚拟机为例&#xff1a; 1、点击重启时&#xff0c;一直按esc&#xff08;鼠标点击一下&#xff0c;确保鼠标在你的虚拟机里面&#xff09; 2、一直到进入到如下页面按e键&#xff08;可能会略有不同&#xff09; 3、按e键后跳转到如下页面 4、在该页面输入 in…

高级定时器

本节主要介绍以下内容&#xff1a; 定时器简介 高级定时器功能框图讲解 一、定时器简介 定时器功能 &#xff1a;定时、输出比较、输入捕获、断路输入 定时器分类 &#xff1a;基本定时器、通用定时器、高级定时器 定时器资源 &#xff1a;F103有2个高级定时器、4个通…

c语言-数据类型(下)

目录 4.实型变量 5.字符常量 直接常量&#xff1a; 转义字符&#xff1a; 6.字符变量 7.字符串常量 五、输出格式总结 整型&#xff1a; 浮点型&#xff1a; 字符及字符串&#xff1a; 指针&#xff08;地址&#xff09;&#xff1a; 六、typedef 七、sizeof一个问…

Python从入门到精通秘籍五

Python速成,每日持续更新,知识点超详细,涵盖所有Python重难点知识及其对应代码,利用碎片化时间,实现Python从入门到精通的飞跃!!! 一、Python的函数基本定义语法 当定义一个函数时,我们使用关键字def,后跟函数名称和一对圆括号。在圆括号内,可以指定任意数量的参数…

Matlab并行编程之GPU

Matlab并行编程之GPU Matlab提供GPU上计算支持: 基础数据类型(gpuArray和对应API),支持GPU计算的内置函数和多个工具包,支持PTX内核对象加载,支持MEX函数使用CUDA C/C开发等。对大规模数据处理&#xff0c;复杂计算&#xff0c;利用GPU计算能提供显著的性能加速效果. Matlab同…

nginx前后端不分离项目代理配置

文章目录 了解举例1&#xff1a;一个项目content-path路径配置为空&#xff0c;使用nginx代理。举例2&#xff1a;配置上项目的content-path&#xff0c;再使用ngxin代理 总结 现在很多时候都是前后端分离的项目&#xff0c;所以配置代理的时候&#xff0c;前端和后端的代理分开…

Docker之网络配置的使用

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《Docker之网络配置的使用》。&#x1f3af;&…

OpenHarmony——Linux之IR驱动

Linux之IR驱动 背景 在光谱中波长自760nm至400um的电磁波称为红外线&#xff0c;它是一种不可见光。红外遥控成本很低&#xff0c;以前广泛应用在电视&#xff0c;空调等电器的控制上面&#xff0c;现在随着蓝牙遥控器慢慢普及&#xff0c;红外遥控越来越少&#xff0c;但在某…

ELK

ELK 的工作原理&#xff1a; &#xff08;1&#xff09;在所有需要收集日志的服务器上部署Logstash&#xff1b;或者先将日志进行集中化管理在日志服务器上&#xff0c;在日志服务器上部署 Logstash。 &#xff08;2&#xff09;Logstash 收集日志&#xff0c;将日志格式化并输…

图像处理:孤立点的检测

图像处理-孤立点的检测 孤立点的检测在图像处理中通常涉及到检测图像中的突变或者边缘&#xff0c;而使用二阶导数是一种常见的方法。一阶导数可以帮助找到图像中的边缘&#xff0c;而二阶导数则有助于检测边缘上的峰值&#xff0c;这些峰值可能对应于孤立点或者特殊的图像结构…

AI大模型预先学习笔记二:prompt提问大模型、langchain使用大模型框架、fine tune微调大模型

文章目录 一、Prompt Engineering&#xff08;怎么去提问大模型&#xff09;1&#xff09;环境准备2&#xff09;交互代码的参数备注3&#xff09;交互代码 二、LangChain&#xff08;一个框架去使用大模型&#xff09;1&#xff09;LangChain核心介绍&#xff1a;I/O模块、数据…

Spring MVC中@Controller和@RestController的区别

Controller 和 RestController 是 Spring MVC 中用于处理 HTTP 请求的注解&#xff0c;它们有以下区别&#xff1a; 返回值处理方式&#xff1a; Controller 用于定义一个传统的 Spring MVC 控制器&#xff0c;它的方法通常返回视图名称或 ModelAndView 对象&#xff0c;由视图…

TypeError: (0 , _ahooks.createUpdateEffect) is not a function

版本 "next": "14.0.4", "antd-mobile": "^5.34.0", next中使用antd-mobile可困难了.主要是因为antd-mobile不支持ssr 1.下载antd-mobile包,在next.config.js中加入 transpilePackages: [antd-mobile,], 2.在页面中引入antd-mobi…

蓝桥杯备赛day02 -- 算法训练题 拿金币Java

目录 题目&#xff1a; 问题描述 输入格式 输出格式 解题过程 第一步 定义dp数组 第二步 确定 dp 数组递推公式 第三步 dp数组的初始化 第四步 dp数组的遍历顺序 第五步 举例说明 报错&#xff1a;内存超限 用dp数组去存储位置上的金币 dp数组从二维降为一维 收获&a…