在scala中使用getResources读取sql文件

时间:2015-05-24 11:39:13

标签: scala apache-spark

我试图在SPARK SQL中读取和执行sql。

sqlContext.sql(scala.io.Source.fromInputStream(getClass.getResourceAsStream("/" + "dq.sql")).getLines.mkString(" ").stripMargin).take(1)

我的sql很长。当我在火花壳中直接运行时,运行正常。当我尝试使用getResourcesAsStream读取它时 - 我正在点击

java.lang.RuntimeException: [1.10930] failure: end of input

2 个答案:

答案 0 :(得分:0)

一个简单的解决方案是在驱动程序上读取sql(使用任何文件实用程序)并传递变量,如ssc.sql(sqlvar)

答案 1 :(得分:0)

  val stream : InputStream = getClass.getResourceAsStream("/filename.txt")
  val readFile = scala.io.Source.fromInputStream( stream ).getLines

  val spa = readFile.map(line => " " + line)
  val spl = spa.mkString.split(";")

  for (m1 <- spl) {
    sqlContext.sql(m1)
  }