[英]How to construct a Scala map and pass as arg into a Scala constructor in Python interpreter?
I am working in a Jupyter Notebook with PySpark v2.3.4 which runs on Java 8, Python 3.6 (with py4j==0.10.7), and Scala 2.11, and I have a Scala case class that takes in a Map
arg as so:
case class my_class(arg1: Long, arg2: Map[String, String] = Map.empty)
我想從my_class
構造一個 object ,但我不太清楚如何構造Map
arg。 以下是我遵循的一些嘗試/文檔,其中sc
是我的 SparkContext。
sc._jvm.scala.collection.JavaConversions.iterableAsScalaIterable([('hello','world')]).toMap()
MapConverter().convert({'a':'b'}, sc._gateway._gateway_client)
py4j.java_collections.JavaMap
object 而不是 scala map。sc._jvm.scala.collection.JavaConverters.*
這些只是我迄今為止嘗試過的一些嘗試。 還沒有真正找到如何做到這一點的好例子,所以任何幫助將不勝感激!
我挖掘了 PySpark 的 src 代碼並發現了這個——似乎現在修復它以供將來任何人參考:
sc._jvm.PythonUtils.toScalaMap({'hello':'world'})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.