将多个变量从scala/spark shell馈送到配置单元表

将多个变量从scala/spark shell馈送到配置单元表,scala,hadoop,apache-spark,hive,apache-spark-sql,Scala,Hadoop,Apache Spark,Hive,Apache Spark Sql,scala/spark shell中有4个变量 S1 = (a string) = "age" S2 = (another string) = "school" D1 = (a double) = 0.50 D2 = (another double) = 0.75 我需要把它放在蜂箱的桌子上,就像这样: 因子系数 年龄0.50 学校0.75 我能够从scala/spark shell创建表: val hiveContext = new org.apache.spark.sql.hive.Hiv

scala/spark shell中有4个变量

S1 = (a string) = "age"
S2 = (another string) = "school"
D1 = (a double) = 0.50
D2 = (another double) = 0.75
我需要把它放在蜂箱的桌子上,就像这样:

因子系数

年龄0.50

学校0.75

我能够从scala/spark shell创建表:

val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
//以下作品

hiveContext.sql("create table students_table (factor STRING, coeff FLOAT) stored as orc")
但是,我不知道如何将这些值插入配置单元表

我玩过插入和更新语句。 我还玩过数据帧。 我还尝试将数据转储到hdfs中的文本文件中(首先将它们转换为RDD),但其格式是以这样一种方式出现的,以至于我无法将其用作配置单元表的素材

我肯定我完全不知道该怎么做


非常感谢您的帮助。

nput:org.apache.spark.rdd.rdd[Any]=ParallelCollectionRDD[257]位于parallelize at:352定义的类StudentTable:356:error:value 1不是任何val df=input.map(x=>StudentTable(x.\u1,x.\u2))的成员。托菲已经研究过这个错误,但我还是有些不知所措。我能猜到的最好情况是某种类型的不匹配。但两者都是字符串:-)我编辑了我的答案,那是一个打字错误。你能再检查一下吗?我想它工作了,但虚拟机内存有问题。重新启动。我将继续向您发帖。您还应将
(系数字符串,系数浮点)
的数据类型更改为
(系数字符串,系数双精度)
val input = sc.parallelize(Array((s1,D1), (s2, D2)))
case class StudentTable(factor : String, coeff : Double)
import sqlContext.implicits._
val df = input.map(x=>StudentTable(x._1, x._2)).toDF
df.saveAsTable("students_table", org.apache.spark.sql.SaveMode.Append)