Spark SQL - 转义查询字符串

2023-11-30

我不敢相信我会问这个但是......

如何使用 SCALA 在 SPARK SQL 中转义 SQL 查询字符串?

我已经厌倦了一切,到处寻找。我认为 apache commons 库可以做到这一点,但没有运气:

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);

返回以下内容:

主题 = '''Ulmus_minor_''托莱多''' ^ 在 scala.sys.package$.error(package.scala:27​​) 在 org.apache.spark.sql.catalyst.SqlParser.parseExpression(SqlParser.scala:45) 在 org.apache.spark.sql.DataFrame.filter(DataFrame.scala:651) 处 $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC。(:29) $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC。(:34) $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC。(:36) $iwC$$iwC$$iwC$$iwC$$iwC$$iwC。(:38) $iwC$$iwC$$iwC$$iwC$$iwC。(:40) $iwC$$iwC$$iwC$$iwC。(:42) $iwC$$iwC$$iwC。(:44) 在 $iwC$$iwC。(:46) 在 $iwC.(:48) 在 (:50) 在 .(:54) 于 .() 于 .(:7) 在 .() 在 $print() 在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 处 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:497) 处 org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065) 在 org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1338) 在 org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:840) 在 org.apache.spark.repl.SparkIMain.interpret (SparkIMain.scala:871) 在 org.apache.spark.repl.SparkIMain.interpret (SparkIMain.scala:819) 在 org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:857) 在 org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:902) 在 org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:814) 处 org.apache.spark.repl.SparkILoop.processLine$1(SparkILoop.scala:657) 在 org.apache.spark.repl.SparkILoop.innerLoop$1(SparkILoop.scala:665) 在 org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$循环(SparkILoop.scala:670) 在 org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply$mcZ$sp(SparkILoop.scala:997) 在 org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945) 在 org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945) 在 scala.tools.nsc.util.ScalaClassLoader$. savingContextLoader(ScalaClassLoader.scala:135) 在 org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$进程(SparkILoop.scala:945) 在 org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1059) 在 org.apache.spark.repl.Main$.main(Main.scala:31) 处 org.apache.spark.repl.Main.main(Main.scala) 位于 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:497) 处 org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:665) 在 org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:170) 在 org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:193) 在 org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:112) 在 org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

帮助会很棒。

j


这可能令人惊讶,但是:

var sql = "'Ulmus_minor_'Toledo'"
df.filter(s"""topic = "$sql"""")

工作得很好,尽管使用这个会更干净:

df.filter($"topic" <=> sql)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark SQL - 转义查询字符串 的相关文章

  • 运行具有外部依赖项的 Scala 脚本

    我在 Users joe scala lib 下有以下 jar commons codec 1 4 jar httpclient 4 1 1 jar httpcore 4 1 jar commons logging 1 1 1 jar ht
  • 独立对列进行排序,使得所有空值都位于每列的最后

    这是一个名为的示例表animal name color fox brown fox red dog gold 现在 我想要的是这样的结果 fox dog brown gold red 名称应该是结果的列 不同颜色值作为行 我的第一个想法是
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • 如何在 PostgreSQL 中使用具有多个值的 SQL LIKE 条件?

    有没有更短的方法来查找多个匹配项 SELECT from table WHERE column LIKE AAA OR column LIKE BBB OR column LIKE CCC 这个问题适用于 PostgreSQL 9 1 但如
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 对多个数据库执行 SQL 查询

    我知道我的帖子与该论坛中的其他帖子的标题非常相似 但我真的找不到我需要的答案 这是我的问题 我的 Windows Server 上运行着 SQL Server 在我的 SQL Server 中 我有大约 30 个数据库 它们都具有相同的表和
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样
  • PHP 通过 SSL 连接到 MS SQL

    我想要实现的目标非常简单 我想通过安全连接从 PHP 脚本连接到外部 MS SQL 数据库 然而 这已被证明是有问题的 到目前为止 经过三个小时的研究 我不知所措 客户端的平台是Ubuntu 这意味着我无法使用SQLSRV 安全连接已经在不
  • 跨多个表进行搜索,并在结果行中显示表名称

    如何构建 SQL 语句以跨多个平面不相关的表运行 并使用选择结果和结果来自的表的名称显示结果 这种情况是这样的 我有几个表 每个表都有相同的列名 这是我从外部各方收到的数据 并将其存储在不同的表中 相同的表看起来像 Table 1 pid
  • 用更轻的解决方案替换完整的 ORM(JPA/Hibernate):推荐的加载/保存模式?

    我正在开发一个新的 Java Web 应用程序 并且正在探索保存数据的新方法 对我来说是新方法 我主要有 JPA 和 Hibernate 的经验 但是 除了简单的情况之外 我认为这种完整的 ORM 可能会变得相当复杂 另外 我不太喜欢和他们
  • 初级SQL部分:避免重复表达式

    我对 SQL 完全陌生 但我们可以说StackExchange 数据浏览器 https data stackexchange com 我只想按信誉列出前 15 位用户 我写了这样的内容 SELECT TOP 15 DisplayName I
  • MyBatis:在一个查询中通过注释收集

    我有一个 xml 映射器 一个选择映射器和一个结果映射器 它工作没有问题 但我想使用注释 我的映射器
  • 自加入表

    我有一张像这样的桌子 Employee name salary a 10000 b 20000 c 5000 d 40000 我想获取所有工资高于A工资的员工 我不想使用任何嵌套或子查询 在采访中被问及并暗示是使用自连接 我真的不知道如何实
  • 月份增量查询

    我想通过添加 1 个月来更新数据库中的月份 但我不知道如何在以下存储过程查询中添加月份 我不擅长 sql 请检查它 ALTER PROCEDURE dbo ChangePassword password varchar 20 epasswo
  • 使用 scala 在 Flink 中进行实时流预测

    弗林克版本 1 2 0斯卡拉版本 2 11 8 我想使用 DataStream 来使用 scala 中的 flink 模型进行预测 我在使用 scala 的 flink 中有一个 DataStream String 其中包含来自 kafka
  • 如何使用 SparkR 1.6.0 写入 JDBC 源?

    使用 SparkR 1 6 0 我可以使用以下代码从 JDBC 源读取数据 jdbc url lt jdbc mysql localhost 3306 dashboard user
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 在 postgres 查询中使用列表

    我有一个动态列表 list a b c d 所以长度可能会改变 我想在查询中比较这些列表值 select from student where name in all the list values 我想将列表值传递到此查询中 我怎样才能做
  • SQL Server 上的语法错误

    这可能是一个愚蠢的语法错误 但我只是继续阅读我的程序 但我无法弄清楚我的错误在哪里 消息 156 第 15 级 状态 1 第 41 行关键字附近的语法不正确 为了 这是我的代码 alter procedure LockReservation
  • 在 Scala 中,使用“_”和使用命名标识符有什么区别?

    为什么当我尝试使用时会出现错误 而不是使用命名标识符 scala gt res0 res25 List Int List 1 2 3 4 5 scala gt res0 map gt item toString

随机推荐

  • 倒计时至特定日期

    我想做的事情看起来应该很简单 但事实证明很棘手 我需要一个倒计时脚本 它使用目标日期并为我提供三个单独的数字 即距该日期的天数 小时数和分钟数 然后我可以将其插入页面的适当位置 我尝试了 jCountdown 但虽然它是高度可定制的 但我仍
  • php 解析字符串并替换子字符串

    我有一个 PHP 字符串 该字符串出现了该模式 abc some substring xyz 此类子字符串在主字符串中多次出现 每个出现的地方都需要替换为数组中的字符串array substring1 substring2 substrin
  • ASP MVC 将值传递到模态窗口

    我有一个带有模态窗口的视图 当我点击打开模态窗口时 我想传递参数item InstrumentId进入模式窗口 以便我可以单击一个链接 将我重定向到属于 InstrumentId 的特定仪器的页面 我在下面所做的成功地将 Instrumen
  • 按日期对多列重新排序和重新分组

    我对此有点困惑 希望得到一些帮助 这是我的数据 Col A Col B Col C Col D Col E Col F FRANCE ITALY DATE Installs Uninstalls DATE Installs Uninstal
  • 在 C++ 中设置单独的位[重复]

    这个问题在这里已经有答案了 我有一个 5 字节数据元素 我需要一些帮助来弄清楚如何在 C 中设置这些字节之一的单个位 请参阅下面我的示例代码 char m TxBuf 4 我想将位 2 设置为字节的高位m TxBuf 1 00000 0 0
  • Android 中通过触摸事件进行反向地理编码

    我通过此堆栈溢出浏览了几篇文章以及其他与反向地理编码相关的文章 我打算从触摸事件中查找具有给定纬度和经度的地点的名称 我从触摸事件中获取了纬度和经度 但无法从该地理坐标中获取地址 它传递异常而不是在尝试区域中 这是代码 public boo
  • 在 Objective C 中检测 PNG 文件是否损坏

    我正在使用 NSURLRequest 下载 jpg 和 png 这工作正常 但有时文件会损坏 我见过捕获错误 损坏的 JPEG 数据 数据段过早结束并使其适用于 jpg 有谁知道对 png 做同样的事情的方法吗 即以编程方式检查 png 数
  • 使用 event.which 来验证用户是否按下空格键在 Firefox 中不起作用

    我想要一个脚本来验证按下的键是否是 空格键 键码 32 我注意到 IE 使用其他函数名称 我尝试了很多在这里找到的解决方案 event event window event IE does not pass event to the fun
  • 如何使用C#读取从asp.net页面传递的参数?

    我是 ASP net 新手 如何读取从 ASP net 页面传递的参数 任何小例子都会受到赞赏 这对我来说只是一个开始 使用您的示例 URL string id Request QueryString id string nam Reque
  • Spring Cloud Gateway转发客户端证书

    我正在尝试将 spring cloud gateway 用于基于 spring boot 的服务 该服务使用 ssl 和客户端身份验证 问题是 通过 api 网关从客户端调用服务总是失败 并显示 certificate unknown 没有
  • Phonegap 视频捕捉崩溃

    我制作了一个相对简单的phonegap应用程序 能够捕获图像和视频并将其上传到服务器 图像工作正常 但是当我调用捕获视频时 会出现相机 UI 当我接受视频时 应用程序崩溃并在 logcat 中出现以下错误 java lang Runtime
  • :touch CSS 伪类或类似的东西?

    我正在尝试制作一个按钮 这样当用户单击它时 它会在按住鼠标按钮的同时更改其样式 如果在移动浏览器中触摸它 我还希望它以类似的方式改变其样式 对我来说 看似显而易见的事情是使用 CSS active 伪类 但这不起作用 我尝试过 focus
  • R SHINY - 条件面板输出偏移?

    这篇文章是相关的R闪亮 复选框和条件面板问题 我在这里成功地创建了该问题的 MRE 再次总结一下 当单击第二个复选框或同时单击第一个和第二个复选框时 数据帧输出会发生移动 我希望它显示在与单击时相同的位置第一个复选框 library shi
  • 使用 Qt 中的命名参数列表发出 HTTP POST 请求

    我需要从 Qt 应用程序向服务器发出 HTTP POST 请求 POST 请求将包含命名值列表 即键 值对 它们主要是字母数字字符串 但可以包含特殊字符 例如引号 空格等 在 Qt 中执行此类 POST 请求的规范方法是什么 当前答案适用于
  • 将 Swift 数组转换为 NSData 以进行 NSUserDefaults.StandardUserDefaults 持久存储

    我正在尝试通过制作一个小应用程序来了解 Swift 在相对熟悉 Obj C 之后 我想使用 NSUserDefaults 持久保存少量数据 但我遇到了问题 我初始化一个空的元组数组 如下所示 var costCategoryArray na
  • 无法将 Ruby on Rails 连接到远程 mysql 数据库

    我正在尝试将我的rails 3应用程序连接到godaddy服务器上托管的mysql数据库 我可以使用 mysql 客户端进行远程连接 但在运行应用程序时却无法进行连接 我能够连接本地 mysql 但是当我尝试连接到远程托管数据库时 出现此错
  • 由于编码问题,WebClient.DownloadString 导致字符损坏,但浏览器正常

    下面的代码 var text new WebClient DownloadString http export arxiv org api query search query au Freidel L start 0 max result
  • Pandas - 当字符串与格式匹配时出现“时间数据与格式不匹配”​​错误?

    我收到一个值错误 指出我的数据与格式不匹配 不确定这是一个错误还是我在这里遗漏了一些东西 我指的是本文档对于字符串格式 奇怪的部分是 如果我将 数据 Dataframe 写入 csv 并读取它 然后调用下面的函数将转换日期 所以我不确定为什
  • php 邮件功能不发送电子邮件/发送电子邮件花费太长时间

    我有一个机架空间云 我想在其中设置 LAMP 服务器有CentOS 我安装了sendmail并且php邮件功能使用这个 但是使用php邮件功能发送电子邮件需要很长时间
  • Spark SQL - 转义查询字符串

    我不敢相信我会问这个但是 如何使用 SCALA 在 SPARK SQL 中转义 SQL 查询字符串 我已经厌倦了一切 到处寻找 我认为 apache commons 库可以做到这一点 但没有运气 import org apache comm