【问题标题】:Convert Spark Scala join statement to Python将 Spark Scala 连接语句转换为 Python
【发布时间】:2018-06-25 08:48:34
【问题描述】:

我需要将以下 scala 语句转换为 python:

scala> a.join(b, a("key") === b("key"), "left").select(a.columns.map(a(_)) : _*).show

:_* 遇到问题 我对 Scala 不熟悉。

我需要在 python 中实现这个答案中的解决方案: https://stackoverflow.com/a/43340781/2453657

【问题讨论】:

    标签: python scala apache-spark pyspark apache-spark-sql


    【解决方案1】:

    在 Scala DataFrame API 中,select 方法采用可变数量的参数。在方法签名中,这由 * 表示,如下例所示:

    // Greet many people
    def greet(who: String*): String = ???
    
    // all valid calls
    greet()
    greet("world")
    greet("alice", "bob")
    

    : 标记用于向编译器提供有关参数类型的提示,在这种情况下,_* 用于指定我们将集合作为参数列表传递:

    def people: Seq[String] = getPeopleToGreet()
    
    greet(people)     // won't compile
    greet(people: _*) // passes the collection of people as a list of arguments -- works
    

    不确定 Python API 是如何工作的,但根据我的经验,我想你可以传递单个值或数组,所以我相信 Python 中不存在这个问题。

    【讨论】:

    • 谢谢。这就是我需要知道的。
    猜你喜欢
    • 2012-07-13
    • 2020-01-24
    • 2017-03-28
    • 2016-06-06
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 2015-02-15
    • 1970-01-01
    相关资源
    最近更新 更多