如何将参数传递给 selectExpr? SparkSQL-Scala

2024-03-28

:)

当您有数据框时,您可以使用以下方法添加列并填充其行selectExprt

像这样的事情:

scala> table.show
+------+--------+---------+--------+--------+
|idempr|tipperrd| codperrd|tipperrt|codperrt|
+------+--------+---------+--------+--------+
|  OlcM|       h|999999999|       J|       0|
|  zOcQ|       r|777777777|       J|       1|
|  kyGp|       t|333333333|       J|       2|
|  BEuX|       A|999999999|       F|       3|

scala> var table2 = table.selectExpr("idempr", "tipperrd", "codperrd", "tipperrt", "codperrt", "'hola' as Saludo")
tabla: org.apache.spark.sql.DataFrame = [idempr: string, tipperrd: string, codperrd: decimal(9,0), tipperrt: string, codperrt: decimal(9,0), Saludo: string]

scala> table2.show
+------+--------+---------+--------+--------+------+
|idempr|tipperrd| codperrd|tipperrt|codperrt|Saludo|
+------+--------+---------+--------+--------+------+
|  OlcM|       h|999999999|       J|       0|  hola|
|  zOcQ|       r|777777777|       J|       1|  hola|
|  kyGp|       t|333333333|       J|       2|  hola|
|  BEuX|       A|999999999|       F|       3|  hola|

我的观点是:

我定义字符串并调用一个使用此字符串参数来填充数据框中的列的方法。但我无法执行选择表达式获取字符串(我尝试了 $、+ 等)。要实现这样的目标:

scala> var english = "hello"

scala> def generar_informe(df: DataFrame, tabla: String) {
    var selectExpr_df = df.selectExpr(
      "TIPPERSCON_BAS as TIP.PERSONA CONTACTABILIDAD",
      "CODPERSCON_BAS as COD.PERSONA CONTACTABILIDAD",
      "'tabla' as PUNTO DEL FLUJO" )
}

scala> generar_informe(df,english)

.....

scala> table2.show
+------+--------+---------+--------+--------+------+
|idempr|tipperrd| codperrd|tipperrt|codperrt|Saludo|
+------+--------+---------+--------+--------+------+
|  OlcM|       h|999999999|       J|       0|  hello|
|  zOcQ|       r|777777777|       J|       1|  hello|
|  kyGp|       t|333333333|       J|       2|  hello|
|  BEuX|       A|999999999|       F|       3|  hello|

I tried:

scala> var result = tabl.selectExpr("A", "B", "$tabla as C")

scala> var abc = tabl.selectExpr("A", "B", ${tabla} as C)
    <console>:31: error: not found: value $
             var abc = tabl.selectExpr("A", "B", ${tabla} as C)

scala> var abc = tabl.selectExpr("A", "B", "${tabla} as C")

scala> sqlContext.sql("set tabla='hello'")
scala> var abc = tabl.selectExpr("A", "B", "${tabla} as C")

同样的错误:

java.lang.RuntimeException: [1.1] failure: identifier expected
${tabla} as C
^
    at scala.sys.package$.error(package.scala:27)

提前致谢!


你能试试这个吗?

val english = "hello"
    generar_informe(data,english).show()

  }

  def generar_informe(df: DataFrame , english : String)={
    df.selectExpr(
      "transactionId" , "customerId" , "itemId","amountPaid" , s"""'${english}' as saludo """)
  }

这是我得到的输出。

17/11/02 23:56:44 INFO CodeGenerator: Code generated in 13.857987 ms
+-------------+----------+------+----------+------+
|transactionId|customerId|itemId|amountPaid|saludo|
+-------------+----------+------+----------+------+
|          111|         1|     1|     100.0| hello|
|          112|         2|     2|     505.0| hello|
|          113|         3|     3|     510.0| hello|
|          114|         4|     4|     600.0| hello|
|          115|         1|     2|     500.0| hello|
|          116|         1|     2|     500.0| hello|
|          117|         1|     2|     500.0| hello|
|          118|         1|     2|     500.0| hello|
|          119|         2|     3|     500.0| hello|
|          120|         1|     2|     500.0| hello|
|          121|         1|     4|     500.0| hello|
|          122|         1|     2|     500.0| hello|
|          123|         1|     4|     500.0| hello|
|          124|         1|     2|     500.0| hello|
+-------------+----------+------+----------+------+

17/11/02 23:56:44 INFO SparkContext: Invoking stop() from shutdown hook
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将参数传递给 selectExpr? SparkSQL-Scala 的相关文章

随机推荐

  • AWS S3 中有乐观锁吗?

    我在 s3 中有一个 excel 文件 由于不同的程序读取和写入它 我需要保证每个程序都写入它们读取的版本 S3仅保证新创建对象的读后一致性 以及覆盖和删除对象的最终一致性 如果您的 Excel 文件足够小 小于 400kb 您可以将其存储
  • TYPO3 表单多复选框部分

    我尝试编辑核心文件 form Resources Private Frontend Partials Field Field html 以更改前端中的 html 输出 如果我更改该文件 它不会产生任何影响 如果我更改核心文件 form Re
  • 同时显示两个片段

    From FragmentPagerAdapter in case 0我实例化了fragment A我想显示的这个片段显示里面的两个片段frag A 视图未显示 我的 FragmentPagerAdapter 由主类调用来填充 viewpa
  • 如何使用 VS 2008 和 IE 完全禁用 JavaScript 错误

    我试图防止 VS 因 JS 错误而中断 我有以下设置 在 IE 下 Tools gt Internet Settings gt Advanced tab gt Browsing Disable script debugging Intern
  • Jquery Ajax CORS + HttpOnly Cookie

    我已经在我当前的项目中使用了 CORS 尽管我似乎无法正常工作的一件事是 cookie 现在我得到了 cookie 服务器发出它并将其发送下来 firefox 接受它 我可以在 firebug cookies 部分看到它 然而 当我对该服务
  • 如何使用 Swashbuckle.AspNetCore 将自定义泛型类型公开为 Swagger 架构中的字符串

    我有一个自定义泛型类型 大致如下所示 public struct Foo
  • Scrapy:如何在蜘蛛中使用项目以及如何将项目发送到管道?

    我是新来的scrapy我的任务很简单 对于给定的电子商务网站 抓取所有网站页面 寻找产品页面 如果 URL 指向产品页面 创建一个项目 处理项目以将其存储在数据库中 我创建了蜘蛛 但产品只是打印在一个简单的文件中 我的问题是关于项目结构 如
  • 连接两个具有交替值的数组

    连接两个具有交替值的数组的最佳方法是什么 比方说array1 is 1 3 5 7 array2 is 2 4 6 8 我想将这两个数组组合起来 结果是 1 2 3 4 5 6 7 8 In Java int a1 1 3 5 7 int
  • ajax jquery 总是运行错误

    每次我运行我的 ajax jquery 函数时 我都会收到一个错误 这适用于我所有的 ajax 调用 这是我的代码的示例 function FindContact CompanyName DivisionName FirstName Las
  • 如何使用 Python 制作时间表的图像/PDF

    我正在解决时间表安排问题 并希望以 PDF 或图像集的形式打印最终输出 我有多个部分 每个部分都有自己的时间表 我为每个部分创建了一个二维数组 该数组的大小为 5 x 5 5 天 每天有 5 个时段 数组的每个索引代表一个讲座时段 现在 这
  • printf 上的分段错误 - NASM 64 位 Linux

    我尝试使用输入四个浮点数scanf 将它们存储到堆栈中 然后使用vmovupd将它们复制到寄存器以供使用 我的问题是 当我尝试输出这 4 个数字时 程序段错误位于printf 我认为这是堆栈的问题 但我尝试多次弹出 一次多条指令 但无济于事
  • 前端和后端应该由不同的控制器处理吗?

    在我之前的学习项目中 我总是使用单个控制器 但现在我想知道这是否是好的做法 甚至总是可能的 在所有 RESTful Rails 教程中 控制器都有一个show an edit and an index看法 如果授权用户登录 则edit视图变
  • C# 将 XPath 与 XmlDocument 结合使用 - 无法选择命名空间中的节点(返回 null)

    我正在尝试做一些应该很简单的事情 但我遇到了可怕的麻烦 我已经尝试过 StackOverflow 中多个类似问题的代码 但没有成功 我正在尝试通过澳大利亚政府的 ABN 查询来获取各种信息 以下是匿名返回 XML 值
  • 从控制台应用程序创建新控制台? C++

    我一直坚持为我的控制台应用程序和记录器创建新的控制台窗口 该代码适用于 GUI 应用程序 但不适用于控制台 并且它们需要 带有 DETACHED PROCESS 标志的 CreateProcess 函数 Logger Log DWORD P
  • ReferenceError:未使用 jest 测试库定义 BroadcastChannel

    我在使用反应测试库运行笑话测试用例时遇到错误 我已经通过以下方式解决了 步骤1 我在根文件夹中创建了 config jest setup js 并将以下代码粘贴到 jest setup js 文件中 function channelMock
  • 如何在 Android 应用程序中添加 Facebook 分享按钮

    我是 android 初学者 我想在我的 android 应用程序中添加 FacebookShare 按钮 我在 2 2 中创建应用程序 请帮助我 我用这个代码 Intent emailIntent new Intent android c
  • Eclipse M2E / 更改订单和导出

    我正在 Eclipse Indigo 中处理 Maven 项目 为了编译一些需要认可的库 webservices api jar 的类 我转到 Properties Java Build Path Order and Export 并将 M
  • SpriteKit 粒子发射器未出现在 Xcode 编辑器中

    我经常遇到粒子效果未出现在编辑器中的问题 当我第一次创建它们时 一切正常 但一段时间后它们就不再出现 我只看到黑色背景 但不存在粒子 我能够处理这个问题的唯一方法是删除节点并创建一个具有相同属性的新粒子节点 这是耗时且烦人的 然后 过了一段
  • 会话 cookie 未设置

    无法让 php 的 SESSION 在我的本地计算机上工作 它在实时服务器上工作正常 但在本地计算机上无法工作 我尝试过在 Windows 上使用 apache 和 php 在 Mac 上使用 apache 和 php 在 debian 上
  • 如何将参数传递给 selectExpr? SparkSQL-Scala

    当您有数据框时 您可以使用以下方法添加列并填充其行selectExprt 像这样的事情 scala gt table show idempr tipperrd codperrd tipperrt codperrt OlcM h 999999