在火花中加入两个存在于蜂巢中的表
Posted
技术标签:
【中文标题】在火花中加入两个存在于蜂巢中的表【英文标题】:Joining two tables in spark that are present in hive 【发布时间】:2015-10-26 16:51:31 【问题描述】:我已经在 eclipse 中编写了 Java 程序来加入 spark 中的两个表,但在 package
附近出现错误
这是下面的错误
类型 scala.reflect.api.TypeTags$TypeTag 无法解析。这是 从所需的 .class 文件中间接引用
这是我写的程序
package joins;
import org.apache.spark.SparkConf;
import org.apache.spark.SparkContext;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.DataFrame;
import org.apache.spark.sql.hive.HiveContext;
public class Spark
public static void main(String[] args)
// TODO Auto-generated method stub
SparkConf conf = new SparkConf();
SparkContext sc = new SparkContext(conf);
HiveContext sqlContext = new org.apache.spark.sql.hive.HiveContext(sc);
sqlContext.sql(" use myown ");
DataFrame table_01 = sqlContext.sql("SELECT * FROM customer");
table_01.saveAsTable("spark_table_01");
sqlContext.cacheTable("spark_table_01");
DataFrame table_02 = sqlContext.sql("SELECT * FROM account");
table_02.saveAsTable("spark_table_02");
sqlContext.cacheTable("spark_table_02");
DataFrame table_join = sqlContext.sql(" SELECT a.* FROM customer a join account b on a.ssn=b.ssn ");
table_join.insertInto("customeraccount");
sqlContext.uncacheTable("spark_table_01");
sqlContext.uncacheTable("spark_table_02");
【问题讨论】:
我使用的是 spark 1.3.0 【参考方案1】:您的应用中似乎缺少 scala reflect jar 文件。下载scala-reflect.jar,放到classpath下重新编译。
【讨论】:
【参考方案2】:在 Eclipse 中,我通过添加 scala-reflect-2.11.8.jar 作为外部 jar 文件解决了这个问题。 jar 文件可以在 Spark 目录的“jars”文件夹中找到。我正在使用 Spark 2.1.0
【讨论】:
以上是关于在火花中加入两个存在于蜂巢中的表的主要内容,如果未能解决你的问题,请参考以下文章