下面是创建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/