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

时间:2017-04-10 08:05:09

标签: pyspark apache-zeppelin

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

1 个答案:

答案 0 :(得分:1)

对于使用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]]
  

对于复杂类型,可以在一侧添加序列化为字符串,在另一侧添加反序列化。