Spark SQL - Escape Query String

Ich kann nicht glauben, dass ich das frage, aber ...

WIE ENTSTEHT EINE SQL-ABFRAGE IN SPARK SQL MIT SCALA?

ch habe alles satt und überall gesucht. Ich dachte, die Apache Commons Library würde es tun, aber kein Glück:

import org.apache.commons.lang.StringEscapeUtils

var sql = StringEscapeUtils.escapeSql("'Ulmus_minor_'Toledo'");

df.filter("topic = '" + sql + "'").map(_.getValuesMap[Any](List("hits","date"))).collect().foreach(println);

gibt Folgendes zurück:

topic = '' 'Ulmus_minor _' 'Toledo' '' ^ at scala.sys.package $ .error (package.scala: 27) at org.apache.spark.sql.catalyst.SqlParser.parseExpression (SqlParser.scala: 45 ) unter org.apache.spark.sql.DataFrame.filter (DataFrame.scala: 651) unter $ iwC $ iwC $ iwC $ iwC $ iwC $ iwC $ iwC $ iwC $ iwC. (: 29) um $ iwC $ iwC $ iwC $ iwC $ iwC $ iwC $ iwC $ iwC. (: 34) um $ iwC $ iwC $ iwC $ iwC $ iwC $ iwC $ $ iwC. (: 36) um $ iwC $ iwC $ iwC $ iwC $ iwC $ iwC. (: 38) um $ iwC $ iwC $ iwC $ iwC $ iwC. (: 40) um $ iwC $ iwC $ iwC $ iwC. (: 42) um $ iwC $ iwC $ iwC. (: 44) um $ iwC $ iwC. (: 46) um $ iwC. (: 48) at (: 50) at (: 54) at () at (: 7) at () at $ print () at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) bei sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) bei java.lang.reflect.Method.invoke (Method.java:497) bei org.apache.spark.repl.SparkIMain $ ReadEvalPrint.call (SparkIMain.scala: 1065) at org.apache.spark.repl.SparkIMain $ Request.loadAndR un (SparkIMain.scala: 1338) bei org.apache.spark.repl.SparkIMain.loadAndRunReq $ 1 (SparkIMain.scala: 840) bei org.apache.spark.repl.SparkIMain.interpret (SparkIMain.scala: 871) bei org. apache.spark.repl.SparkIMain.interpret (SparkIMain.scala: 819) bei org.apache.spark.repl.SparkILoop.reallyInterpret $ 1 (SparkILoop.scala: 857) bei org.apache.spark.repl.SparkILoop.interpretStartingWith (SparkILoop .scala: 902) bei org.apache.spark.repl.SparkILoop.command (SparkILoop.scala: 814) bei org.apache.spark.repl.SparkILoop.processLine $ 1 (SparkILoop.scala: 657) bei org.apache.spark .repl.SparkILoop.innerLoop $ 1 (SparkILoop.scala: 665) bei org.apache.spark.repl.SparkILoop.org $ apache $ spark $ repl $ SparkILoop $ loop (SparkILoop.scala: 670) bei org.apache.spark .repl.SparkILoop $ anonfun $ org $ apache $ spark $ repl $ SparkILoop $ process $ 1.apply $ mcZ $ sp (SparkILoop.scala: 997) bei org.apache.spark.repl.SparkILoop $ anonfun $ org $ apache $ spark $ repl $ SparkILoop $ process $ 1.apply (SparkILoop.scala: 945) at org.apache.spark.repl.SparkILoop $ anonfun $ org $ apache $ spark $ repl $ SparkILoop $ process $ 1.apply (SparkILoop.scala: 945) at scala.tools.nsc.util.ScalaClassLoader $ .savingContextLoader (ScalaClassLoader.scala: 135) at org.apache.spark.repl.SparkILoop.org $ apache $ spark $ repl $ SparkILoop $ -Prozess (SparkILoop.scala: 945) bei org.apache.spark.repl.SparkILoop.process (SparkILoop.scala: 1059) bei org.apache.spark.repl.Main $ .main (Main .scala: 31) bei org.apache.spark.repl.Main.main (Main.scala) bei sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) bei sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) bei sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:497) at org.apache.spark.deploy.SparkSubmit $ .org $ apache $ spark $ deploy $ SparkSubmit $ runMain (SparkSubmit.scala: 665) bei org.apache.spark.deploy.SparkSubmit $ .doRunMain $ 1 (SparkSubmit.scala: 170) bei org.apache.spark.deploy.SparkSubmit $ .submit (SparkSubmit.scala) : 193) unter org.apache.spark.deploy.SparkSubmit $ .main (SparkSu bmit.scala: 112) unter org.apache.spark.deploy.SparkSubmit.main (SparkSubmit.scala)

Hilfe wäre toll.

j

Antworten auf die Frage(4)

Ihre Antwort auf die Frage