【问题标题】:How to construct a Scala map and pass as arg into a Scala constructor in Python interpreter?如何在 Python 解释器中构造 Scala 映射并作为 arg 传递给 Scala 构造函数?
【发布时间】:2020-05-21 18:10:14
【问题描述】:

我正在使用运行在 Java 8、Python 3.6(py4j==0.10.7)和 Scala 2.11 上的 PySpark v2.3.4 的 Jupyter Notebook 工作,并且我有一个 Scala 案例类,它接受 @987654324 @arg 就这样:

case class my_class(arg1: Long, arg2: Map[String, String] = Map.empty)

我想从my_class 构造一个对象,但我不太清楚如何构造Map arg。以下是我遵循的一些尝试/文档,其中sc 是我的 SparkContext。

  • sc._jvm.scala.collection.JavaConversions.iterableAsScalaIterable([('hello','world')]).toMap()
  • MapConverter().convert({'a':'b'}, sc._gateway._gateway_client)
  • sc._jvm.scala.collection.JavaConverters.*
    • 找不到任何存在于其docs 中的方法

这些只是我迄今为止尝试过的一些尝试。还没有真正找到如何做到这一点的好例子,所以任何帮助都将不胜感激!

【问题讨论】:

    标签: java python scala pyspark py4j


    【解决方案1】:

    我翻阅了 PySpark 的 src 代码并发现了这个——似乎现在修复它以供将来任何人参考:

    sc._jvm.PythonUtils.toScalaMap({'hello':'world'})

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-02
      • 2013-06-14
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 2011-02-11
      • 1970-01-01
      相关资源
      最近更新 更多