我需要使用sparksql.I在我的hive表中插入一些值。我使用以下代码。
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首先,我尝试使用Insert Into Values,但后来我发现此功能在sparksql中不可用。
val ds=sparksession.sql("insert into mytable("filepath,filename,Start_Time") values('${filepath}','${fn}','${e}')有没有其他方法可以使用sparksql插入这些值(mytable是空的,我每天都需要加载这个表)?
发布于 2020-04-12 17:30:23
您可以直接使用Spark Dataframe Write API将数据插入到表中。如果您没有Spark Dataframe,那么首先使用spark.createDataFrame()创建一个Dataframe,然后尝试如下写入数据:
df.write.insertInto("name of hive table")
发布于 2020-04-12 19:09:02
嗨,下面的代码对我很有效,因为我需要在我的数据框中使用变量,所以我首先从选定的数据创建数据框,然后使用保存在hive表中的df.write.insertInto(表名)。
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")https://stackoverflow.com/questions/61168575
复制相似问题