Assuming the parameter to your UDF should be start"end (with a quote in the middle) then you need to insert a backslash into the query (which must also be escaped in your code). So just add two extra backslashes before the quote inside the string.
sqlContext.sql("SELECT * FROM mytable WHERE (mycolumn BETWEEN 1 AND 2) AND (myudfsearchfor(\"start\\\"end\"))" -- Michael Mior mm...@apache.org 2017-06-15 12:05 GMT-04:00 mark.jenki...@baesystems.com < mark.jenki...@baesystems.com>: > *Hi,* > > > > *I have a query **sqlContext.sql(“**SELECT * FROM mytable WHERE > (mycolumn BETWEEN 1 AND 2) AND (myudfsearchfor(\“start\"end\”))”* > > > > *How should I escape the double quote so that it successfully parses? * > > > > *I know I can use single quotes but I do not want to since I may need to > search for a single and double quote.* > > > > *The exception I get is* > > > > *[Thread-18] ERROR QueryService$ - Failed to complete query, will mark job > as failed java.lang.RuntimeException: [1.117] failure: ``)'' expected but > "end" found* > > > > *SELECT * FROM mytable WHERE (mycolumn BETWEEN 1 AND 2) AND > (myudfsearchfor(\“start\"end\”))* > > * > ^* > > * at scala.sys.package$.error(package.scala:27)* > > * at > org.apache.spark.sql.catalyst.AbstractSparkSQLParser.parse(AbstractSparkSQLParser.scala:36)* > > * at > org.apache.spark.sql.catalyst.DefaultParserDialect.parse(ParserDialect.scala:67)* > > * at > org.apache.spark.sql.SQLContext$$anonfun$2.apply(SQLContext.scala:211)* > > * at > org.apache.spark.sql.SQLContext$$anonfun$2.apply(SQLContext.scala:211)* > > > > *Thankyou* > Please consider the environment before printing this email. This message > should be regarded as confidential. If you have received this email in > error please notify the sender and destroy it immediately. Statements of > intent shall only become binding when confirmed in hard copy by an > authorised signatory. The contents of this email may relate to dealings > with other companies under the control of BAE Systems Applied Intelligence > Limited, details of which can be found at http://www.baesystems.com/ > Businesses/index.htm. >