当前位置: 首页 > 知识库问答 >
问题:

将SPARK DATAFRAME插入HIVE Managed Acid表不工作,HDP 3.0

仲鸿风
2023-03-14

我在将Spark dataframe插入配置单元表时遇到了一个问题。有人能帮帮我吗。HDP版本3.1,Spark版本2.3提前感谢。

//原始代码部分

import org.apache.spark.SparkContext;
import com.hortonworks.spark.sql.hive.llap.HiveWarehouseSessionImpl;
import org.apache.spark.sql.DataFrame
import com.hortonworks.hwc.HiveWarehouseSession;
import org.apache.spark.sql.SparkSession$;

val spark = SparkSession.builder.getOrCreate()
spark.sparkContext.setLogLevel("ERROR")
**val hive = com.hortonworks.spark.sql.hive.llap.HiveWarehouseBuilder.session(spark).build()**
/*
Some Transformation operations happend and the output of transformation is stored in VAL RESULT
/*
val result = {
  num_records
  .union(df.transform(profile(heatmap_cols2type)))
}

result.createOrReplaceTempView("out_temp"); //Create tempview

scala> result.show()
+-----+--------------------+-----------+------------------+------------+-------------------+
| type|              column|      field|             value|       order|               date|
+-----+--------------------+-----------+------------------+------------+-------------------+
|TOTAL|                 all|num_records|               737|           0|2019-12-05 18:10:12|
|  NUM|available_points_...|    present|               737|           0|2019-12-05 18:10:12|

hive.setDatabase("EXAMPLE_DB")
hive.createTable("EXAMPLE_TABLE").ifNotExists().column("`type`", "String").column("`column`", "String").column("`field`", "String").column("`value`","String").column("`order`", "bigint").column("`date`", "TIMESTAMP").create()

hive.executeUpdate("INSERT INTO TABLE EXAMPLE_DB.EXAMPLE_TABLE SELECT * FROM out_temp");

-----ERROR of Orginal code----------------
Caused by: org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED: SemanticException [Error 10001]: Line 1:86 Table not found 'out_temp'**strong text**

与在Spark中将out_temp保存为tempview不同,有什么方法可以直接在hive中创建表吗?有没有办法从spark dataframe插入到配置单元表中?

谢谢大家抽出时间!

共有1个答案

林泰平
2023-03-14

result.write.save(“example_table.parquet”)

 类似资料:
  • 我必须向MySQL数据库发送一个INSERT查询,假设所有变量都设置正确,我使用以下代码: 变量被正确设置为result,正如我在使用时看到的那样,但现在在数据库中插入了行。 奇怪的是,如果调用MySQL错误日志,可以清楚地看到insert被正确地发送到数据库,如下所示: 但它没有出现在表格中。 有什么建议吗?谢谢

  • 我试图使用php/html表单将数据输入到mysql数据库中,但它不起作用,我不知道为什么。该记录没有插入,我只得到一个空白页后,我提交了表单。 谢谢,尤金妮 这是我的databaseenter图像描述 这是html表单: 这是php代码:

  • 我有一个问题,这个代码没有插入到数据库中的值。。。 我想不出来。。。我已经确保这些值是从HTML表单页面传递过来的。我已经能够让删除页面正常工作了。“mysqli_查询(insert-into)”只是没有将值插入数据库。

  • 问题内容: 我想将一些数据插入与下一年的日期相关的表中。我实际上只需要插入工作日。 我可以通过回退并删除周末的行来解决我的问题,但这似乎不太优雅-有人能想到一种方法来修改我的循环以便跳过周末吗? 问题答案: 您总是可以在插入行之前检查星期几(星期几的名称取决于您的NLS设置,因此这不是最可靠的解决方案)

  • 问题内容: 我需要将周末插入只有工作日的表中,然后将最后一个已知值分配给周末值。我知道我将需要一个插入查询,尽管在VBA和SQL方面我还是很新。 到目前为止的代码: 我拥有的数据(从周五开始): 我需要的数据: 因为没有对或者,我需要抢前一天的值,并将其输入到新添加的周末日期(例如,2018年1月6日和2018年1月7日)与匹配的信息,以及(,,,)。 在此先感谢您提供的任何帮助/建议。我仍然很新

  • 问题内容: 我一直在看这段代码已有一段时间了,但我看不出问题出在哪里。我已经阅读了整个StackOverflow,但仍然看不到我的错误在哪里。 错误在第13行中,即thats 。我尝试通过http://www.w3schools.com/php/php_mysql_insert.asp帮助自己,但对我没有太大帮助。 问题答案: 警告: 切勿将 w3schools 用于学习目的。他们的教程中有很多错