spark作为orc错误写入配置单元:路径不是文件

5jvtdoz2  于 2021-05-31  发布在  Hadoop
关注(0)|答案(2)|浏览(327)

我有一个spark代码,它正试图写入hiveorc表spark版本:2.2.0.2.6
我创建了一个Dataframe DF.show(10) 我可以看到数据和列也匹配。但是当我试图用下面的代码将它保存到hive orc表时。 DF.write.mode(SaveMode.Overwrite).format("orc").saveAsTable(hive_stgtableName)DF.repartition(5).write.mode("Append").insertInto(hive_stgtableName_PReq) 我得到的错误如下。 Caused by: org.apache.hadoop.ipc.RemoteException: Path is not a file: /apps/dir1/dir2/dir3/dir4/mydb/hive_stgtableName 此配置单元\u stgtablename指向
/apps/dir1/dir2/dir3/dir4/mydb/hive\u stgtablename。
现在,每当我在重新创建配置单元表后运行此代码时,都会收到random dir的错误,但都是相同的错误。 /apps/dir1/dir2/dir3/dir4/mydb/xx_1 /apps/dir1/dir2/dir3/dir4/mydb/xx_2 /apps/dir1/dir2/dir3/dir4/mydb/xx_3 我试过所有的table娱乐,但错误还是出现了。基本上,它的抛出错误随机为所有目录,这是在同一级别的 /apps/dir1/dir2/dir3/dir4/mydb/hive_stgtableName 下面是我的配置单元表语句 CREATE EXTERNAL TABLE IF NOT EXISTS mydb.hive_stgtableName( headertimestamp string, recordtype string, messageid string, myattri_chn_updatesallowed string, myattri_chn_messageid string, myattri_chn_version string, myattri_chn_identity string, myattri_chn_system string, myattri_chn_xmlns_ns2 string, myattri_chn_xmlns_soap string, myattri_chn_xmlns_ns3 string, myattri_chn_xmlns_ns4 string, syscontext_servgrp string, syscontext_ntwk string, syscontext_ch string, syscontext_zone string, syscontext_session string, service_id string, myval_contmyval_id string, myval_contmyval_assetref_providerid string, myval_contmyval_assetref_assetid string, climyval_currentdatetime string, climyval_terminaladdr_type string, climyval_terminaladdr string, climyval_targetcode_key string, climyval_targetcode string, placemtopp_id string, placemtopp_serregref string, hashed_header_id string, input_file_name string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' LOCATION '/apps/dir1/dir1/dir1/dir1/mydb/hive_stgtableName' TBLPROPERTIES ('orc.compress'='SNAPPY'); 不知道是什么导致了这个错误。我在谷歌上搜索了很多次,但都没有指出这个错误。

9fkzdhlc

9fkzdhlc1#

尝试

saveAsTable(mydb.hive_stgtableName)
vngu2lb8

vngu2lb82#

这里的问题是在读取文件(包含300多个+)时,目录也在同一位置。spark很奇怪,因为当我尝试执行df.show(10)时,它仍然向我显示正确的输出,但是当我尝试将数据写入表时,它会抛出一个错误,每次它都显示random directory。因此,通过确保它只读取作为输入的文件,这个错误就消失了。

相关问题