Scala 当存储为字符串变量时,如何执行spark sql多行查询?
我有这样的多行查询代码Scala 当存储为字符串变量时,如何执行spark sql多行查询?,scala,apache-spark,apache-spark-sql,hiveql,Scala,Apache Spark,Apache Spark Sql,Hiveql,我有这样的多行查询代码 val hiveInsertIntoTable = spark.read.text(fileQuery).collect() hiveInsertIntoTable.foreach(println) val actualQuery = hiveInsertIntoTable(0).mkString println(actualQuery) spark.sql(s"truncate table $tableTruncate") spark.sq
val hiveInsertIntoTable = spark.read.text(fileQuery).collect()
hiveInsertIntoTable.foreach(println)
val actualQuery = hiveInsertIntoTable(0).mkString
println(actualQuery)
spark.sql(s"truncate table $tableTruncate")
spark.sql(actualQuery)
每当我试图执行实际的查询时,我都会得到一个错误
org.apache.spark.sql.catalyst.parser.ParseException:
no viable alternative at input '<EOF>'(line 1, pos 52)
== SQL ==
insert into wera_tacotv_esd.lac_asset_table_pb_hive
这个查询实际上大约有450行
我试图用三个引号将变量括起来,但也没用
感谢您的帮助
我正在使用spark 2.1和scala 2.11解决三个问题:
是一个hiveInsertIntoTable
-不是很有用的结构数组[org.apache.spark.sql.Row]
- 您只获取它的第一行
hiveInsertIntoTable(0)
- 即使获取所有行,使用空字符串(
)进行连接也不会很好.mkString
val actualQuery = spark.read.text(path).as[String].collect.mkString("\n")
或
我们需要查看此查询。。。至少它的前53个字符…你是对的ronhash错误是当前anser和我有一个;在查询的末尾
val actualQuery = spark.read.text(path).as[String].collect.mkString("\n")
val actualQuery = spark.sparkContext.wholeTextFiles(path).values.first()