python使用spark sql查询impala_如何使用JDBC将Impala表直接加载到Spark?
我正在尝试使用
Python编写一个spark作业,它将打开与Impala的jdbc连接,并将Impala直接从Impala加载到Dataframe中.这个问题非常接近,但在scala中:
Calling JDBC to impala/hive from within a spark job and creating a table
我该怎么做呢?其他数据源有很多例子,例如MySQL,PostgreSQL等,但我还没有看到一个用于Impala Python Kerberos的数据源.一个例子会有很大的帮助.谢谢!
尝试使用来自网络的信息,但它没有用.
SPARK笔记本
#!/bin/bash
export PYSPARK_PYTHON=/home/anave/anaconda2/bin/python
export HADOOP_CONF_DIR=/etc/hive/conf
export PYSPARK_DRIVER_PYTHON=/home/anave/anaconda2/bin/ipython
export PYSPARK_DRIVER_PYTHON_OPTS='notebook --ip=* --no-browser'
# use Java8
export JAVA_HOME=/usr/java/latest
export PATH=$JAVA_HOME/bin:$PATH
# JDBC Drivers for Impala
export CLASSPATH=/home/anave/impala_jdbc_2.5.30.1049/Cloudera_ImpalaJDBC41_2.5.30/*.jar:$CLASSPATH
export JDBC_PATH=/home/anave/impala_jdbc_2.5.30.1049/Cloudera_ImpalaJDBC41_2.5.30
# --jars $SRCDIR/spark-csv-assembly-1.4.0-SNAPSHOT.jar \
# --conf spark.sql.parquet.binaryAsString=true \
# --conf spark.sql.hive.convertMetastoreParquet=false
pyspark --master yarn-client \
--driver-memory 4G \
--executor-memory 2G \
# --num-executors 10 \
--jars /home/anave/spark-csv_2.11-1.4.0.jar $JDBC_PATH/*.jar
--driver-class-path $JDBC_PATH/*.jar
Python代码
properties = {
"driver": "com.cloudera.impala.jdbc41.Driver",
"AuthMech": "1",
# "KrbRealm": "EXAMPLE.COM",
# "KrbHostFQDN": "impala.example.com",
"KrbServiceName": "impala"
}
# imp_env is the hostname of the db, works with other impala queries ran inside python
url = "jdbc:impala:imp_env;auth=noSasl"
db_df = sqlContext.read.jdbc(url=url, table='summary', properties=properties)
我收到此错误消息(Full Error Log):
Py4JJavaError:调用o42.jdbc时发生错误.
:java.lang.ClassNotFoundException:com.cloudera.impala.jdbc41.Driver
最佳答案 您可以使用
--jars $(echo /dir/of/jars/*.jar | tr ' ' ',')
代替
--jars /home/anave/spark-csv_2.11-1.4.0.jar $JDBC_PATH/*.jar
或者对于另一种方法,请参阅我的answer
python使用spark sql查询impala_如何使用JDBC将Impala表直接加载到Spark?相关推荐
- python使用spark sql查询impala_使用SparkSQL阅读Impala表
我试图执行一个查询,该函数的功能类似于lead .. over ..分区和Union.当我试图在impala上运行它时,此查询效果很好,但在Hive上失败.使用SparkSQL阅读Impala表 我需 ...
- spark SQL(三)数据源 Data Source----通用的数据 加载/保存功能
Spark SQL 的数据源------通用的数据 加载/保存功能 Spark SQL支持通过DataFrame接口在各种数据源上进行操作.DataFrame可以使用关系变换进行操作,也可以用来创建临 ...
- spark sql读取hive底层_scala – 从一个hive表中读取并使用spark sql写回来
我正在使用Spark SQL读取Hive表并将其分配给 scala val val x = sqlContext.sql("select * from some_table") 然 ...
- Spark-sql:以编程方式执行Spark SQL查询(通过反射的方式推断出Schema,通过StrutType直接指定Schema)
1.编写Spark SQL查询语句 在这之前创建Maven项目.创建的过程如:http://blog.csdn.net/tototuzuoquan/article/details/74571374 在 ...
- python保存大列表(list)数据到文件并后续重新加载为列表(list)对象实战
python保存大列表(list)数据到文件并后续重新加载为列表(list)对象实战 笔者遇到的问题是这样的, 在做机器学习模型的时候,有的时候会使用相关性分析的方法来进行特征的筛选,去除冗余特征,降 ...
- Python Day 10 函数(名称空间,作用域,作用域链,加载顺序等; 函数的嵌套 global,nonlocal)...
Python Day 10 函数(名称空间,作用域,作用域链,加载顺序等; 函数的嵌套 global,nonlocal) 名称空间(命名空间): 当程序运行时,代码从上至下一次读取,遇到变量与值, ...
- Python脚本-导出SQL查询结果到Excel文件
不像Mysql , SQL Server似乎没有指定的语句可以直接把SQL查询语句的结果导出到文件 下面用Python的pandas库实现这一功能 1 import pandas as pd 2 im ...
- 一个Spark SQL查询的一生
Spark是时下很火的计算框架,由UC Berkeley AMP Lab研发,并由原班人马创建的Databricks负责商业化相关事务.而SparkSQL则是Spark之上搭建的SQL解决方案,主打交 ...
- Spark _25.plus _使用idea读取Hive中的数据加载成DataFrame/DataSet(四)
对Spark _25 _读取Hive中的数据加载成DataFrame/DataSet(四) https://georgedage.blog.csdn.net/article/details/10309 ...
最新文章
- 直播源码:直播+内容营销新趋势
- JavaScript 教程(二)
- Mycat中间件的下发准则
- 电子书下载 | 超实用!阿里售后专家的 K8s 问题排查案例合集
- 数据结构与算法09 之图
- BugKuCTF 加密 easy_crypto
- php7连接oracle数据库,使用一个持久连接连到 Oracle 数据库 - PHP 7 中文文档
- 简易的CRM系统案例之SpringMVC+JSP+MySQL+hibernate框架版本
- 【Ubuntu-Opencv】Ubuntu14.04 Opencv3.3.0 完整卸载方案
- python Pillow 的简单案例
- (2) 第二章 WCF服务与数据契约 服务契约详解(三)- [ServiceContract]特性
- Intel Haswell/Broadwell架构/微架构/流水线 (2)-流水线前端
- spark学习-57-Spark下Scala版HBase下的根据权重获取最真实数据
- 神经网络填充(padding)
- Java匹马行天下之学编程的起点——高级语言大锅烩
- 前端js使用java变量值_web前端:js中的变量
- Nuxt判断手机端还是电脑端
- 【Proteus仿真】51单片机+TLC5615输出三角波
- 花仙里云课堂知识付费v1.2.25知识付费 教育 直播
- 启动oracle10监听器错误:本地计算机上的OracleOraDb10g_home1TNSListener服务启动后又停止了 解决方案
热门文章
- .Net Core微服务架构技术栈的那些事
- 流传在程序员中的传说,你知道几个?
- Exceptionless 5.0.0本地Docker快速部署介绍
- Hyper-V + CentOS7 网络设置(视频教程)
- Serilog 自定义 Enricher 来增加记录的信息
- linux 安装 powershell
- 译 | 你到底有多精通 C# ?
- .net core 注入机制与Autofac
- ASP.NET Core中HTTP管道和中间件的二三事
- [NewLife.XCode]脏数据