Невозможно вставить значение с помощью SparkSql - PullRequest
0 голосов
/ 12 апреля 2020

Мне нужно вставить некоторые значения в мою таблицу улья, используя spark sql. Я использую приведенный ниже код.

    val filepath:String = "/user/usename/filename.csv'"
    val fileName : String = filepath
    val result = fileName.split("/") 
    val fn=result(3)  //filename
    val e=LocalDateTime.now() //timestamp

Сначала я попытался использовать вставку в значения, но потом обнаружил, что эта функция не доступно в spark sql.

    val ds=sparksession.sql("insert into mytable("filepath,filename,Start_Time")  values('${filepath}','${fn}','${e}')

есть ли другой способ вставить эти значения, используя spark sql (mytable пуст, мне нужно загружать эту таблицу каждый день)?.

Ответы [ 2 ]

0 голосов
/ 12 апреля 2020

Привет Ниже приведенный код работал для меня, так как мне нужно использовать переменную в моем фрейме данных, поэтому сначала я создал данные из фрейма данных, а затем с помощью df.write.insertInto (tablename), сохраненного в таблице кустов.

    val filepath:String = "/user/usename/filename.csv'"
    val fileName : String = filepath
    val result = fileName.split("/") 
    val fn=result(3)  //filename
    val e=LocalDateTime.now() //timestamp
    val df1=sparksession.sql(s" select '${filepath}' as file_path,'${fn}' as filename,'${e}' as Start_Time")
    df1.write.insertInto("dbname.tablename")
0 голосов
/ 12 апреля 2020

Вы можете напрямую использовать API записи Spark Dataframe для вставки данных в таблицу. Если у вас нет Spark Dataframe, то сначала создайте один Dataframe с помощью spark.createDataFrame (), затем попробуйте выполнить запись следующим образом:

df.write.insertInto("name of hive table")

...