您可以在 Zeppelin 中的 Scala 和 Pyspark 之间传递哪些类型?

Which types can you pass between Scala and Pyspark inside Zeppelin?

我使用 Zeppelin 0.7.1,有时我想传递非分布式数据类型,如 Seq 或 Array。目前我总是将它们转换为数据集并将它们作为数据框放入 Python 中。有没有更好的办法?

对于简单类型使用z ZeppelinContext 非常方便。

在 Spark 中

z.put("name", "zeppelin")
z.put("array", Array(1, 2, 3))

在 PySpark 中

%pyspark
z.get("name")
ar = z.get("array")
print(ar[0])

z.put("pyspark", "cool")
z.put("pyarray", [1, 2, 3])

再次进入 Spark

z.get("pyspark")
val ar = z.get("pyarray").asInstanceOf[java.util.ArrayList[Int]]

For complex types, can add serialize to string on one side and deserialize on the other side.