python – 是否有可能在Pyspark中继承DataFrame?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 是否有可能在Pyspark中继承DataFrame?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1215字,纯文字阅读大概需要2分钟。
内容图文
Pyspark的文档显示了从sqlContext,sqlContext.read()和各种其他方法构造的DataFrame.
(见https://spark.apache.org/docs/1.6.2/api/python/pyspark.sql.html)
是否有可能将Dataframe子类化并独立实例化它?我想为基本DataFrame类添加方法和功能.
解决方法:
这真的取决于你的目标.
>从技术上讲,这是可能的. pyspark.sql.DataFrame只是一个普通的Python类.如果需要,您可以扩展它或猴子补丁.
from pyspark.sql import DataFrame
class DataFrameWithZipWithIndex(DataFrame):
def __init__(self, df):
super(self.__class__, self).__init__(df._jdf, df.sql_ctx)
def zipWithIndex(self):
return (self.rdd
.zipWithIndex()
.map(lambda row: (row[1], ) + row[0])
.toDF(["_idx"] + self.columns))
用法示例:
df = sc.parallelize([("a", 1)]).toDF(["foo", "bar"])
with_zipwithindex = DataFrameWithZipWithIndex(df)
isinstance(with_zipwithindex, DataFrame)
True
with_zipwithindex.zipWithIndex().show()
+----+---+---+
|_idx|foo|bar|
+----+---+---+
| 0| a| 1|
+----+---+---+
>实际上,你在这里做不了多少. DataFrame是一个围绕JVM对象的瘦包装器,除了提供文档字符串,将参数转换为本机所需的表单,调用JVM方法以及在必要时使用Python适配器包装结果之外,没有多大帮助.
使用纯Python代码,您甚至无法靠近DataFrame / Dataset内部或修改其核心行为.如果你正在寻找独立的,Python只有Spark DataFrame实现它是不可能的.
内容总结
以上是互联网集市为您收集整理的python – 是否有可能在Pyspark中继承DataFrame?全部内容,希望文章能够帮你解决python – 是否有可能在Pyspark中继承DataFrame?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。