老师,您好:
我写了一个读取外部数据然后存储到hive的程序,有些疑惑需要您的帮忙,谢谢。
代码是打jar包放到服务器上用spark-submit方式执行,代码是读取服务器上“/home/hadoop/data/student.data”数据,然后在服务器上的hive上创建一个student表,并把student.data数据保存到student表里。代码如下:
object SaveDataToHive {
def main(args: Array[String]) {
val path = args(0)
println("============================= " + path + " =============================")
val spark = SparkSession.builder().appName("SaveDataToHive").getOrCreate()
val rdd = spark.sparkContext.textFile(path)
import spark.implicits._
val studentDF = rdd.map(_.split("\\|")).map(line => Student(line(0).toInt, line(1), line(2), line(3))).toDF()
studentDF.show(30, false)
studentDF.registerTempTable("table1")
val hiveContext = new HiveContext(spark.sparkContext)
hiveContext.sql("drop table if exists student")
hiveContext.sql("CREATE TABLE IF NOT EXISTS student(id string, name string, phone string,email string )")
hiveContext.sql("insert into student from ta