如何修复异常:在 Hive serde table 中保存数据 请使用 insertInto() API 作为替代方法。 Spark:2.1.0
How to fix the Exception: Saving data in the Hive serde table Please use the insertInto() API as an alternative. Spark:2.1.0
我们正在尝试使用 saveAsTable()
方法将 Dataframe 保存到 Hive Table。但是,我们得到以下异常。我们正在尝试将数据存储为 TextInputFormat
.
Exception in thread "main" org.apache.spark.sql.AnalysisException: Saving data in the Hive serde table `cdx_network`.`inv_devices_incr` is not supported yet. Please use the insertInto() API as an alternative..;
reducedFN.write().mode(SaveMode.Append).saveAsTable("cdx_network.alert_pas_incr");
我试过 insertInto()
和 enableHiveSupport()
都有效。但是,我想使用 saveAsTable()
.
我想了解为什么 saveAsTable()
不起作用。我尝试浏览文档和代码。没有得到太多的了解。它应该工作。我看到使用 Parquet 格式的人提出的问题,但对于 TextFileInputFormat 我没有看到任何问题。
Table定义
CREATE TABLE `cdx_network.alert_pas_incr`(
`alertid` string,
`alerttype` string,
`alert_pas_documentid` string)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
'maprfs:/apps/cdx-dev/alert_pas_incr'
TBLPROPERTIES (
'COLUMN_STATS_ACCURATE'='{\"BASIC_STATS\":\"true\"}',
'numFiles'='0',
'numRows'='0',
'rawDataSize'='0',
'totalSize'='0',
'transient_lastDdlTime'='1524121971')
看起来这是个错误。我做了一些研究,发现了这个问题 SPARK-19152。固定版本为 2.2.0。不幸的是我无法验证它,因为我公司的集群使用版本 2.1.0
我们正在尝试使用 saveAsTable()
方法将 Dataframe 保存到 Hive Table。但是,我们得到以下异常。我们正在尝试将数据存储为 TextInputFormat
.
Exception in thread "main" org.apache.spark.sql.AnalysisException: Saving data in the Hive serde table `cdx_network`.`inv_devices_incr` is not supported yet. Please use the insertInto() API as an alternative..;
reducedFN.write().mode(SaveMode.Append).saveAsTable("cdx_network.alert_pas_incr");
我试过 insertInto()
和 enableHiveSupport()
都有效。但是,我想使用 saveAsTable()
.
我想了解为什么 saveAsTable()
不起作用。我尝试浏览文档和代码。没有得到太多的了解。它应该工作。我看到使用 Parquet 格式的人提出的问题,但对于 TextFileInputFormat 我没有看到任何问题。
Table定义
CREATE TABLE `cdx_network.alert_pas_incr`(
`alertid` string,
`alerttype` string,
`alert_pas_documentid` string)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
'maprfs:/apps/cdx-dev/alert_pas_incr'
TBLPROPERTIES (
'COLUMN_STATS_ACCURATE'='{\"BASIC_STATS\":\"true\"}',
'numFiles'='0',
'numRows'='0',
'rawDataSize'='0',
'totalSize'='0',
'transient_lastDdlTime'='1524121971')
看起来这是个错误。我做了一些研究,发现了这个问题 SPARK-19152。固定版本为 2.2.0。不幸的是我无法验证它,因为我公司的集群使用版本 2.1.0