rt
你好,请问你使用pyspark的需求是什么呢,侧重点是算法还是数据处理?
算法+数据处理
你好,目前有nebula的python客户端,你可以利用pyspark读取nebula数据。
python-client: https://github.com/vesoft-inc/nebula-python
这个结合pyspark不知道怎么用,有什么示例可供参考么
- 安装nebula-python,安装过程见 https://github.com/vesoft-inc/nebula-python
- 编写pyspark入口代码:
spark = SparkSession\
.builder\
.appName("PythonWordCount")\
.master("spark://mini1:7077") \
.getOrCreate()
- python读取nebula数据有两种方式:
3.1 通过python-client的scan接口读取数据,转换成spark的dataframe。示例:nebula-python/ScanVertexEdgeExample.py at master · vesoft-inc/nebula-python · GitHub
3.2 利用nebula-spark中的scala类直接读取nebula数据。
nebula-spark代码地址:https://github.com/vesoft-inc/nebula-spark-connector
如何在pyspark中调用scala可参考:如何在PySpark中调用Scala/Java代码_Lestat.Z.的博客-CSDN博客_pyspark 调用java
多谢大佬
python scan 接口目前还没有调通
给大佬点个赞
@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)
实现一套pyspark的connector就可以用python 写 read.nebula啦。
具体咋实现,可以看下spark-connector的流程哈,后面会有篇关于spark connector reader的文章发出来。是把nebula作为spark的扩展数据源,继承SparkSQL DataSourceV2来实现的。
那如果只用scan呢,scan返回的是一个迭代器,是不是得预先创建一个dataframe,比如每次取1000条,把这1000条append这个dataframe里
类似这样
df = spark.xxx.dataframe()
for data in scan():
df.add(data)
不是,spark不是这样处理的,你可以先看下这个类中的createRelation方法,这是将nebula作为数据源读取成DataFrame的入口。
哭了,我是个纯写py的
难道不应该是打赏催更吗
泥抠大佬开直播,我要给大佬刷一杯卡布奇诺