首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PySpark配置单元SQL -未插入数据

PySpark配置单元SQL -未插入数据
EN

Stack Overflow用户
提问于 2018-01-25 21:20:08
回答 2查看 1.1K关注 0票数 0

我想插入一些数据,我的表“测试”通过一个pySpark脚本(火种的python)。

我首先在HUE的图形界面中为Hive创建了一个表"animals“,感谢下面的查询:

代码语言:javascript
运行
复制
CREATE TABLE animals( id int, animal String) 

于是我买了一张新桌子。我写这个脚本是为了给它添加一个新行(1,dog):

代码语言:javascript
运行
复制
from pyspark.conf import SparkConf
from pyspark import SparkContext
from pyspark.sql import SQLContext, HiveContext

sc = SparkContext()
hc = HiveContext(sc)
dataToInsert = hc.sql("select 1 as id, 'dog' as animal")
dataToInsert.write.mode("append").insertInto("animals")

在执行它之后(在终端中使用"sudo pyspark myscript.py“执行了几次),它似乎没有添加任何东西。

你知道如何解决这个问题吗,或者通过Spark的python脚本将数据插入到Hive/Impala表中的其他方法?

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2018-01-25 22:08:26

这可能是因为您已经创建了一个名为test的表,并且要插入到可能不存在的animals中。

尝试更换动物进行测试。确保以sc.stop()结尾,并开始使用spark-submit

代码语言:javascript
运行
复制
from pyspark.conf import SparkConf
from pyspark import SparkContext
from pyspark.sql import SQLContext, HiveContext

sc = SparkContext()
hc = HiveContext(sc)
dataToInsert = hc.sql("select 1 as id, 'dog' as animal")
dataToInsert.write.mode("append").insertInto("test")
sc.stop()

它工作得很好。您使用的是什么版本?

票数 0
EN

Stack Overflow用户

发布于 2018-01-26 03:42:51

看起来问题出在insertInto尝试使用saveAsTable,insertInto在Spark1.4中已被弃用。

dataToInsert.write.mode("append").saveAsTable("SchemaName.animals")这样的东西注意到模式名称是强制的。

如果上面的命令没有给您留下任何机会,请尝试写入hive表的HDFS路径。我还建议您在运行pyspark job sql命令后修复hive表:从hiveContext或hive运行msck repair table <schema.tablename>;

为什么需要msck修复??查看我的另一个答案here

以下是Doc快照:

saveAsTable(name,format=None,mode=None,partitionBy=None,**options)将DataFrame的内容保存为指定表。

在表已经存在的情况下,此函数的行为取决于由mode函数指定的保存模式(默认抛出异常)。当模式为Overwrite时,DataFrame的架构不需要与现有表的架构相同。

append:将该DataFrame的内容追加到已有的数据上。

覆盖:覆盖已有数据。错误:如果数据已经存在,则抛出异常。

忽略:如果数据已经存在,则静默忽略此操作。参数: name -表名格式-保存时使用的格式

模式-附加、覆盖、错误、忽略之一(默认值:错误)

partitionBy -分区列的名称选项-所有其他字符串选项1.4版中新增的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48443837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档