`
lookqlp
  • 浏览: 346728 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hive SQL调用python脚本遇到的几个问题

    博客分类:
  • hive
阅读更多
sql调用python获取数据字段个数太多
源码:
    for line in sys.stdin:
       (tid, dp_id, customerno,...此处省略多个字段,共n个字段) = line.strip().split()

异常:

    图1

原因:

    根据测试,split分割数据以后获取n+m个数值,与预期的n个数值不对应,split默认以空格分割数据,而hive录入数据默认以制表符“\t”分割。

解决:

     for line in sys.stdin:

       (tid, dp_id, customerno,...此处省略多个字段,共n个字段) = line.strip().split(“\t”)
python print输出数据类型格式不准确
源码:
     print "%s\t%s\t%s\t%s\t%d\t%f\t%s\t%g..." %  (tid, dp_id, customerno, created, endtime, status, trade_from, type, pay_time, total_fee, ...)

异常:
    图2

原因:
    如上源码和问题1中的源码,括号内传入的数据都为string型。“%s”,“%f”,“%d”,“%g”是根据hive表中字段数据类型来定的。此处print输出数据至sql因为数据类型不匹配出现如上异常。

解决:
   根据括号内的常数类型使用相应的输出类型,输出类型不是根据hive表字段数据类型来定,如上,括号内都是string类型,即所有输出使用“%s”。

sys.stdin输入python脚本中数据准确split后,字段个数不准确,问题类似于问题1
源码:
    如问题1中源码。

异常:
    图3

原因:
    正常情况下,split后有41个字段数据,然而split后少于41个字段,经过测试,sys.stdin输入数据中,有字段有空值或者字段内容中含有\n \r \01等特殊字符,导致切割数据不准确。

解决:
    构建表时加入:alter table_name set serdeproperties('serialization.null.format'='NULL');
    sqoop脚本中加入:--hive-drop-import-delims
  • 大小: 9 KB
  • 大小: 7.8 KB
  • 大小: 9.8 KB
分享到:
评论

相关推荐

    如何在python中写hive脚本

    在Python中编写Hive脚本主要是为了方便地与Hadoop HIVE数据仓库进行交互,这样可以在数据分析和机器学习流程中无缝地集成大数据处理步骤。以下将详细介绍如何在Python环境中执行Hive查询和管理Hive脚本。 1. **直接...

    shell中循环调用hive sql 脚本的方法

    本文将详细介绍如何在Shell脚本中循环调用Hive SQL语句,以便实现批量处理数据或者执行一系列相关的查询操作。 首先,我们要理解Shell脚本的基本结构和Hive SQL的功能。Shell脚本是一种解释型的编程语言,主要用于...

    使用shell脚本执行hive、sqoop命令的方法

    1. **权限问题**:确保执行Shell脚本的用户有足够的权限来访问Hive和MySQL数据库。 2. **环境配置**:确保Hadoop、Hive和Sqoop等相关组件已经正确安装并配置好。 3. **错误处理**:在实际应用中,应添加适当的错误...

    捕获hive脚本异常: echo $?

    在IT行业中,尤其是在大数据处理领域,Hive是一个广泛使用的数据仓库工具,它允许用户通过SQL-like语法查询...结合Hive的配置选项和shell脚本的控制结构,我们可以构建出强大的自动化处理流程,以应对各种复杂情况。

    PyPI 官网下载 | soda-sql-hive-2.1.0b5.tar.gz

    4. **API和CLI**:库中可能包含Python API接口,允许开发者在代码中直接调用Soda SQL的功能。此外,还可能提供命令行界面(CLI),使得非开发人员也能方便地执行数据质量检查。 5. **测试套件**:为了确保库的正确...

    Hive用户指南 Hive user guide 中文版

    - **调用外部脚本**:Hive支持通过脚本扩展其功能,例如调用Python或Shell脚本。 **2.8 删除表** - 使用`DROP TABLE table_name [PURGE]`来删除表及其所有数据。 **2.9 其他操作** - **LIMIT**:`SELECT ... ...

    apache-hive-2.1.1-bin.tar.gz下的bin文件夹,包含hive.cmd

    `hive.cmd`是Windows环境下执行Hive的命令脚本,它是一个批处理文件,用于启动Hive的交互式Shell。当用户在Windows系统上输入`hive`命令时,实际上就是在运行这个`hive.cmd`脚本。脚本内部会设置环境变量,如HADOOP_...

    Hive用户手册中文版.pdf

    Hive还支持调用Python、Shell等外部脚本语言,从而实现复杂的外部数据处理逻辑。 Hive的优化与技巧包括如何选择合适的Map和Reduce操作的数量,如何处理大表之间的JOIN操作以避免数据偏斜,如何合并小文件以提高数据...

    HiveSqlBloodFigure:hive血缘关系解析工具

    HiveSqlBloodFigure 如果你喜欢这个项目,那就点击一下右上方的【Star...引入JDBC获取元数据信息,使血缘图更加丰富,同时可以解决Sql中有select * 的问题。 测试用例 请关注test下的HiveBloodEngineTest与HiveSqlBloo

    hive解决问题方案

    ### Hive 解决问题方案 #### 一、Hive 常用操作命令 Hive 提供了一系列实用的命令来帮助用户高效地管理数据和执行查询。以下是一些关键的命令及其用途: 1. **`hive --help`**:提供帮助信息,列出所有可用的命令...

    python 操作hive pyhs2方式

    安装完成后,就可以通过Python脚本与Hive进行交互了。 PyHs2库支持使用Kerberos认证机制,这对于安全性要求较高的Hadoop集群环境尤为重要。在配置Kerberos认证时,需要指定Kerberos服务名称(`krb_service`)、...

    Hive用户指南(Hive_user_guide)_中文版.pdf

    Hive还提供了命令行选项和交互式shell命令,以及调用Python、Shell等语言的支持。 Hive支持的Map/Reduce操作包括: - JOIN - GROUPBY - DISTINCT 使用Hive时需要注意的点包括字符集、数据压缩、数据的count...

    hive开发指南 -1.0.pdf

    此外,用户还可以在Hive中调用Python、Shell等外部脚本语言执行复杂的任务。 在数据查询方面,Hive提供了丰富的查询功能,包括SELECT、LIMIT、TOP-K、正则表达式列指定、分组(GROUP BY)、排序(ORDER BY、SORT BY...

    Hive数据分析和定时任务调度,也是Flask-Hive项目的大数据处理部分.zip

    - **Beeline**:另一种连接Hive的方式,是Hive提供的一个命令行工具,也可用Python的subprocess模块调用来执行Hive查询。 3. **Flask-Hive**: - **Flask**:轻量级的Python Web框架,用于快速开发Web应用。在本...

    Oozie调度SparkSQL样例代码_oozie_hive_

    Oozie支持多种类型的作业,包括Hadoop MapReduce、Pig、Hive、Sqoop以及Shell脚本等。在我们的场景中,我们关注的是如何调度Spark SQL作业。 Spark SQL是Apache Spark的一部分,它提供了与SQL兼容的接口,使得开发...

    14-Hive查询1

    3. **使用 Shell 脚本查看 Hive 表**:通过编写简单的 Shell 脚本自动化执行 Hive 命令,查看表的信息或数据。 **总结** Hive 提供了一个便捷的接口,允许非专业程序员处理大数据。通过编译和优化过程,Hive 可以...

    PyPI 官网下载 | hive_bt-0.0.4.tar.gz

    对于`hive_bt`这个库,我们可能需要关注以下几个关键知识点: 1. **Hive连接**:库可能提供了与Hive服务器建立连接的方法,以便进行数据导入导出操作。 2. **SQL查询**:可能包含封装HQL(Hive Query Language)的...

    hive操作指南

    - Hive允许通过UDF(User Defined Function)来调用Python、Shell等脚本语言。 **2.8 删除** - 示例:`DROP TABLE IF EXISTS employees;` **2.9 其他操作** - **2.9.1 Limit** - 示例:`SELECT * FROM ...

    使用Python构造hive insert语句说明

    因此,你可能需要从Hive中查询数据,然后用Python脚本自动化生成这些语句。例如,你可以通过Hive的Beeline客户端或者Python的impyla库获取数据,然后对每一行应用`transformString`函数,最后批量生成INSERT语句。 ...

Global site tag (gtag.js) - Google Analytics