我使用Zeppelin 0.7.1,有时我想传递非分布式数据类型,如Seq或Array。目前我总是将它们转换为数据集并将它们作为数据帧在Python中获取。有没有更好的方法?
答案 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]]
对于复杂类型,可以在一侧添加序列化为字符串,在另一侧添加反序列化。