使用spark从case类列表创建一个hive表

时间:2017-05-08 06:12:39

标签: scala apache-spark rdd

我正在尝试从案例类列表中创建一个配置单元表。但它不允许指定数据库名称。以下错误正在被抛出。

Spark版本:1.6.2

  

错误:诊断:用户类引发异常:org.apache.spark.sql.AnalysisException:找不到表:mytempTable;第1行pos 58

请告诉我将map方法的输出保存到与案例类结构相同的配置单元表的方法。

注意: recordArray列表正在map方法中填充(在getElem()方法infact中),用于给定的输入

    object testing extends Serializable {
          var recordArray=List[Record]();
           def main(args:Array[String])
          {
          val inputpath = args(0).toString();
          val outputpath=args(1).toString();


          val conf = new SparkConf().setAppName("jsonParsing")
          val sc = new SparkContext(conf)
          val sqlContext= new SQLContext(sc)
          val hsc = new HiveContext(sc)

          val input = sc.textFile(inputpath)
          //val input=sc.textFile("file:///Users/Documents/Work/data/mydata.txt")
         // input.collect().foreach(println)
         val = input.map(data=>getElem(parse(data,false))) 
   val recordRDD = sc.parallelize(recordArray)
//
     val recordDF=sqlContext.createDataFrame(recordRDD)
    recordDF.registerTempTable("mytempTable") 
     hsc.sql("create table dev_db.ingestion as select * from mytempTable")
        }

    case class Record(summary_key: String, key: String,array_name_position:Int,Parent_Level_1:String,Parent_level_2:String,Parent_Level_3:String,Parent_level_4:String,Parent_level_5:String,
            param_name_position:Integer,Array_name:String,paramname:String,paramvalue:String)
    }

0 个答案:

没有答案