下面是創建HIVE表的簡單代碼,並在其中加載數據。錯誤KeyProviderCache:找不到密鑰
import java.util.Properties
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import org.apache.spark.sql.SQLContext
import sqlContext.implicits._
val conf = new SparkConf().setAppName("HIVE_Test").setMaster("local").set("spark.executor.memory","1g").set("spark.driver.allowMultipleContexts", "true");
val sc = new SparkContext(conf);
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc);
sqlContext.sql("CREATE TABLE test_amit_hive12(VND_ID INT,VND_NM STRING,VND_SHORT_NM STRING,VND_ADR_LN_1_TXT STRING,VND_ADR_LN_2_TXT STRING,VND_CITY_CD STRING,VND_ZIP_CD INT,LOAD_TS FLOAT,UPDT_TS FLOAT, PROMO_STTS_CD STRING, VND_STTS_CD STRING)");
sqlContext.sql("LOAD DATA LOCAL INPATH 'path_to/amitesh/part.txt' INTO TABLE test_amit_hive12");
exit()
我有兩個疑問::
1)在「創建表」,我硬編碼表名,但如何將代碼明白分隔符的文件是有?當我們通過HIVE提示創建一個HIVE表,我們編寫以下行
FIELDS TERMINATED BY ‘’
LINES TERMINATED BY ‘’
所以,不要我們需要做的是星火/斯卡拉工作時?
2),同時通過星火殼執行的代碼,我得到下面的錯誤::
ERROR KeyProviderCache: Could not find uri with key [dfs.encryption.key.provider.uri] to create a keyProvider !!
res1: org.apache.spark.sql.DataFrame = [result: string]
我發現了一個計算器後,但它是沒有答案。在其他網站上,我發現它是一個Hadoop 2.7.1的bug。我檢查了我的,我有2.7.2。那麼,我的版本中存在的bug的可能性是什麼。我正在使用IBM BigInsight。以下是我的版本的詳細信息
Hadoop 2.7.2-IBM-12
但是,沒有任何一個誰可以幫我解決這個問題,我必須有一個非常強的證據來證明這是我的經理的錯誤。
下面鏈接裏的人說,錯誤是一個錯誤
`https://talendexpert.com/talend-spark-error/