Star

是否有支持pyspark的计划

rt

请教下大佬 @darionyaphet和 @nicole

你好,请问你使用pyspark的需求是什么呢,侧重点是算法还是数据处理?

算法+数据处理

你好,目前有nebula的python客户端,你可以利用pyspark读取nebula数据。
python-client: https://github.com/vesoft-inc/nebula-python

:expressionless: 这个结合pyspark不知道怎么用,有什么示例可供参考么

  1. 安装nebula-python,安装过程见 https://github.com/vesoft-inc/nebula-python
  2. 编写pyspark入口代码:
    spark = SparkSession\
            .builder\
            .appName("PythonWordCount")\
            .master("spark://mini1:7077") \
            .getOrCreate()
  1. python读取nebula数据有两种方式:
    3.1 通过python-client的scan接口读取数据,转换成spark的dataframe。示例:https://github.com/vesoft-inc/nebula-python/blob/master/examples/StorageClientExample.py
    3.2 利用nebula-spark中的scala类直接读取nebula数据。
    nebula-spark代码地址:https://github.com/vesoft-inc/nebula-java/tree/master/tools/nebula-spark
    如何在pyspark中调用scala可参考:https://blog.csdn.net/yolohohohoho/article/details/89811399
4赞

多谢大佬
python scan 接口目前还没有调通

给大佬点个赞

1赞

@nicole 泥抠大佬,这个connector必须用scala实现么,我想用python来实现,有没有相关代码可以参考
我在github上找的pyspark-cassandra, pyspark-mongo都有用scala代码,

或者辛苦大佬帮忙写几行伪代码?

好,加在待办中了,等我回复

好,日常催更

pyspark是由scala实现的,目的就是让python开发者使用python进行spark开发。
写spark程序都是一样的流程,使用pyspark时可以参考scala写法 把语法换成python的。
示例:
python定义spark入口:

from pyspark.sql import SparkSession
spark = SparkSession \
    .builder \
    .appName("Python Spark SQL basic example") \
    .config("spark.some.config.option", "some-value") \
    .getOrCreate()

# 读取文件
df = spark.read.csv("path",encoding='gbk', header=True, inferSchema=True)

:expressionless: 泥抠大佬,read.json,read.mysql,read.hive这些都有,想要read.nebula,这个需要怎么做,是否必须得用Scala @nicole

实现一套pyspark的connector就可以用python 写 read.nebula啦。
具体咋实现,可以看下spark-connector的流程哈,后面会有篇关于spark connector reader的文章发出来。是把nebula作为spark的扩展数据源,继承SparkSQL DataSourceV2来实现的。

3赞

那如果只用scan呢,scan返回的是一个迭代器,是不是得预先创建一个dataframe,比如每次取1000条,把这1000条append这个dataframe里

类似这样

df = spark.xxx.dataframe()
for data in scan():
    df.add(data)

不是,spark不是这样处理的,你可以先看下这个类中的createRelation方法,这是将nebula作为数据源读取成DataFrame的入口。

:expressionless: 哭了,我是个纯写py的

难道不应该是打赏催更吗

:upside_down_face: 泥抠大佬开直播,我要给大佬刷一杯卡布奇诺

浙ICP备20010487号