2017-06-15 20 views
0
以鑲木地板

我想寫數據集到一個平面文件中的Java,我用星火2.0 - 數據集<Row>用Java編寫

​​

此代碼是由運行火花提交命令下面

給出
sudo spark-submit --class getdata --master yarn --num-executors 4 --executor-cores 1 --jars guava-14.0.1.jar,hadoop-common-2.7.3.jar,hbase-client-1.3.0.jar,hbase-common-1.3.0.jar,hbase-protocol-1.3.0.jar,log4j-1.2.17.jar,metrics-core-2.2.0.jar,ojdbc6.jar,spark-core_2.11-2.0.2.jar,spark-assembly.jar,spark-sql_2.11-2.0.2.jar,hive-beeline-1.2.1.spark2.jar,hive-cli-1.2.1.spark2.jar,hive-exec-1.2.1.spark2.jar,hive-jdbc-1.2.1.spark2.jar,hive-metastore-1.2.1.spark2.jar,parquet-column-1.7.0.jar,parquet-common-1.7.0.jar,parquet-encoding-1.7.0.jar,parquet-format-2.3.0-incubating.jar,parquet-generator-1.7.0.jar,parquet-hadoop-1.7.0.jar,parquet-hadoop-bundle-1.6.0.jar,parquet-hive-1.0.1.jar,parquet-jackson-1.7.0.jar,spark-hive_2.11-2.0.2.jar getdata.jar 

我收到以下異常。

Exception in thread "main" java.util.ServiceConfigurationError: org.apache.spark.sql.sources.DataSourceRegister: Provider org.apache.spark.sql.hive.orc.DefaultSource could not be instantiated 

我在想什麼?請幫忙。

回答

0

ServiceLoader發現類路徑上的DefaultSource實現會調用一個構造函數,該構造函數返回與預期返回類型不對應的類型。

OrcRelation被返回,其中HadoopFsRelation是預期的,但OrcRelation沒有實現HadoopFsRelation。這可能是一個版本衝突,因爲我在2.1.0中找不到HadoopFsRelation,而在舊版本中(例如1.6.0)。

你的類路徑或Spark/Hive混合實現是否有多個Spark版本?

+0

我只使用spark 2.0.2。我需要在spark-submit命令中包含哪個jar文件才能使其工作? –