<返回更多

Apache Spark 的新编程语言

2023-07-07  CSDN  
加入收藏

English SDK for Spark : 将英语作为一种新的编程语言,将生成式 AI 当做编译器, 将 Python/ target=_blank class=infotextkey>Python 视作字节码!

本文主要介绍了 Apache Spark 的英语软件开发套件(SDK)的重要性和目标,以及它采用生成式 AI 技术来丰富Spark 的使用体验。它还提到了Github Copilot 对 AI 辅助代码开发的影响,以及其存在的限制和问题。本文还绍了英语 SDK 的特性,包括数据获取、DataFrame 操作、自定义函数(UDFs)和缓存等。最后,鼓励读者积极参与英语 SDK 的开发和探索,为扩大 Apache Spark 的影响力贡献一份力量。

原文链接:https://www.databricks.com/blog/introducing-english-new-programming-language-apache-spark

作者 | Gengliang Wang,Xiangrui Meng,Reynold Xin,Allison Wang,Amanda Liu和Denny Lee

译者 | 明明如月

责编 | 夏萌

出品 | CSDN(ID:CSDNnews)

导言

我们非常激动地向大家介绍 Apache Spark 的英语软件开发套件(SDK)。这是一个革命性的工具,旨在丰富你的 Spark 使用体验。Apache Spark™ 在全球范围内,覆盖 208 个国家和地区,年下载量超过 10 亿次,已经在大规模数据分析领域取得了显著成绩。我们的英语 SDK 采用先进的生成型 AI 技术,旨在扩大这个活跃的社区,使 Spark 在易用性和亲和度上达到前所未有的高度!

缘起

GitHub Copilot 对 AI 辅助的代码开发领域产生了深远的影响。虽然它功能强大,但用户需要理解生成的代码后才能提交。同时,审查者也需要理解代码才能进行审查。这可能会限制其广泛应用的一大阻碍。当处理 Spark 表和 DataFrames 时,它偶尔也会生成不正确或不符合预期的代码。下面的 GIF 动图展示了这一点,Copilot 提出了一个窗口规范,并引用了不存在的dept_id列,这需要一些专业知识才能理解。

与其将 AI 视为副驾驶,为何不让 AI 当做司机,我们坐在豪华的后座享受呢?这就是我们英语 SDK 所要扮演的角色。我们发现,尖端的大型语言模型对 Spark 非常了解,这得益于优秀的 Spark 社区,他们在过去十年中,贡献了大量的开放的、高质量的内容,比如 API 文档、开源项目、问题和答案、教程和书籍等。现在,我们将这些生成型 AI 对 Spark 的专业知识融入到英文 SDK 中。你不再需要理解复杂的生成代码,只需用简单的英文指令即可得到结果:

transformed_df = df.ai.transform('get 4 week moving average sales by dept')

英语 SDK 通过理解 Spark 表和 DataFrames 来处理复杂性,并直接返回一个正确的 DataFrame !

我们的愿景是:将英文作为一种编程语言,并使用生成式 AI 将这些英文指令编译成 PySpark 和 SQL 代码。这种创新的方式旨在降低编程的门槛和简化学习曲线。这个愿景是推动英文 SDK 的主要驱动力,我们的目标是扩大 Spark 的影响力,让 Spark 从一个成功走向另一个成功。

英语 SDK 的特性

英语 SDK 通过实现以下关键特性,使 Spark 的开发过程变得更简单:

示例

为了进一步说明如何使用英语 SDK,我们将通过一些例子进行演示:

数据获取

如果你是一名数据科学家,需要导入2022年美国全国汽车销售数据,您只需要两行代码即可完成:

spark_ai = SparkAI auto_df = spark_ai.create_df("2022 USA national auto sales by brand")

DataFrame 操作

对于给定的 DataFrame 对象,SDK 允许你运行以 df.ai 开头的方法。这包括转换、绘图、DataFrame 解释等等。

要激活 PySpark DataFrame 的部分函数:

spark_ai.activate

要预览 auto_df:

auto_df.ai.plot

要查看各汽车公司的市场份额分布:

auto_df.ai.plot("pie chart for US sales market shares, show the top 5 brands and the sum of others")

要获取增长最快的品牌:

​​​​​​​auto_top_growth_df=auto_df.ai.transform("top brand with the highest growth") auto_top_growth_df.show

要获取 DataFrame 的解释:

auto_top_growth_df.ai.explain

总的来说,这个 DataFrame 正在查找销售增长最快的品牌。它将结果按销售增长率降序排列,并仅返回增长最快的结果。

自定义函数 (UDFs) SDK

支持通过简单而清晰的方式创建自定义函数。使用@spark_ai.udf装饰器,你只需定义一个带有文档字符串的函数,SDK 就会在后台自动完成代码生成:

​​​​​​​@spark_ai.udf def convert_grades(grade_percent: float) -> str: """Convert the grade percent to a letter grade using standard cutoffs""" ...

现在,你可以在 SQL 查询或 DataFrames 中使用这个自定义函数(UDF)

SELECT student_id, convert_grades(grade_percent) FROM grade

总结

Apache Spark 的英语 SDK 是一个既简洁又强大的工具,能够显著提升你的开发效率。它的目标是简化复杂的任务,减少必需的代码量,使你可以专注于从数据中挖掘洞察。

虽然英语 SDK 还处于早期的开发阶段,但未来可期。我们鼓励你去尝试这个创新的工具,亲身感受其带来的便利,并考虑为此项目贡献自己的一份力量。不要在这场革命中袖手旁观,而应该积极参与其中。现在就去 pyspark.ai 上探索和体验英语 SDK 的强大功能吧。你的参与和洞见,将为扩大 Apache Spark 的影响力做出重要贡献。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>