Apache Spark 的新编程语言

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列 , 这需要一些专业知识才能理解 。

Apache Spark 的新编程语言

文章插图
与其将 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 从一个成功走向另一个成功 。
Apache Spark 的新编程语言

文章插图
英语 SDK 的特性
英语 SDK 通过实现以下关键特性 , 使 Spark 的开发过程变得更简单:
  • 数据获取:根据你的描述 , SDK 可以进行网络搜索 , 运用大型语言模型 (LLM) 确定最佳结果 , 然后顺利地将选定的网络数据集成到 Spark 中 , 这些操作都能在一个步骤中完成 。
  • DataFrame 操作:SDK 对指定的 DataFrame 提供了功能 , 根据你的英文描述执行转换、绘图和解释操作 。这些功能大大提升了代码的可读性和效率 , 使得对 DataFrames 的操作更加直接和直观 。
  • 自定义函数 (UDFs):SDK 提供了简洁的创建 UDFs 的流程 。你只需要提供一段描述 , AI 就可以负责代码的补全 。这一特性简化了 UDF 的创建过程 , 让你可以专注于函数定义 , 而 AI 则会处理其余部分 。
  • 缓存:SDK 吸取了缓存的优点以提升执行速度 , 保证结果的可复用性 , 并节省成本 。
示例
为了进一步说明如何使用英语 SDK , 我们将通过一些例子进行演示:
数据获取


推荐阅读