Apache Spark 3.0.0 は 3.x ラインの最初のリリースです。投票は2020年6月10日に可決されました。このリリースは、6月10日までのすべてのコミットを含むgitタグv3.0.0に基づいています。Apache Spark 3.0 は、Spark 2.x の多くのイノベーションを基盤とし、新しいアイデアを取り入れ、開発中の長期プロジェクトも継続しています。オープンソースコミュニティからの多大な貢献により、このリリースでは440人以上の貢献者からの貢献の結果、3400件以上のチケットが解決されました。
今年はSparkがオープンソースプロジェクトとして10周年を迎えます。2010年の最初のリリース以来、Sparkは最も活発なオープンソースプロジェクトの1つに成長しました。現在、Sparkはビッグデータ処理、データサイエンス、機械学習、データ分析ワークロードのための事実上の統一エンジンとなっています。
Spark SQL はこのリリースで最も活発なコンポーネントです。解決されたチケットの46%がSpark SQL向けです。これらの機能強化は、Structured StreamingやMLlibなどの上位ライブラリ、およびSQLやDataFramesなどの上位APIにメリットをもたらします。このリリースでは、さまざまな関連する最適化が追加されています。TPC-DS 30TBベンチマークでは、Spark 3.0 は Spark 2.4 の約2倍高速です。
Pythonは現在Sparkで最も広く使用されている言語です。PySparkはPython Package IndexであるPyPIで毎月500万以上のダウンロードがあります。このリリースでは、Python型ヒント、新しいPandas UDFタイプ、およびよりPythonicなエラー処理を備えたPandas UDF APIの再設計を含む、機能と使いやすさが向上しています。
Spark 3.0 の主な機能ハイライトは以下の通りです。アダプティブクエリ実行、動的パーティションプルーニング、ANSI SQL準拠、Pandas APIの大幅な改善、Structured Streamingの新しいUI、Rユーザー定義関数の呼び出しで最大40倍の速度向上、アクセラレータ対応スケジューラ、SQLリファレンスドキュメント。
Apache Spark 3.0.0 をダウンロードするには、ダウンロードページをご覧ください。JIRAで詳細な変更点を確認できます。ここでは、主要モジュールごとにグループ化された、ハイレベルな変更点のリストをまとめました。
ハイライト
パフォーマンス強化
SQL互換性強化
spark.sql.ansi.enabled を追加 (SPARK-28989)PySpark 強化
拡張性強化
コネクタの強化
spark.sql.statistics.fallBackToHdfsをサポート (SPARK-25474)機能強化
監視とデバッグ容易性強化
ドキュメントとテストカバレッジ強化
Kubernetes 上のネイティブSparkアプリ
その他の注目すべき変更点
動作の変更
各コンポーネントの移行ガイドをお読みください: Spark Core, Spark SQL, Structured Streaming, PySpark。
移行ガイドで省略されているその他の動作変更がいくつかあります。
org.apache.spark.sql.streaming.ProcessingTime が削除されました。代わりに org.apache.spark.sql.streaming.Trigger.ProcessingTime を使用してください。同様に、org.apache.spark.sql.execution.streaming.continuous.ContinuousTrigger は Trigger.Continuous のために削除され、org.apache.spark.sql.execution.streaming.OneTimeTrigger は Trigger.Once のために非表示になりました。(SPARK-28199)DataStreamWriter.foreachBatch は Scala プログラムとのソース互換性がありません。Scala関数とJavaラムダを区別するために、Scalaソースコードを更新する必要があります。(SPARK-26132)プログラミングガイド: Spark RDD Programming Guide および Spark SQL, DataFrames and Datasets Guide および Structured Streaming Programming Guide。
ハイライト
動作の変更
詳細については 移行ガイド をお読みください。
移行ガイドで省略されているその他の動作変更がいくつかあります。
set*(self, value) を提供しなくなりました。代わりに、それぞれの self.set(self.*, value) を使用してください。詳細は SPARK-29093 を参照してください。(SPARK-29093)プログラミングガイド: Machine Learning Library (MLlib) Guide。
動作の変更
詳細については 移行ガイド をお読みください。
プログラミングガイド: SparkR (R on Spark)。
プログラミングガイド: GraphX Programming Guide。
dropDuplicates オペレータを持つストリーミングクエリは、Spark 2.x で書き込まれたチェックポイントで再開できない場合があります。これは Spark 3.0.1 で修正される予定です。(SPARK-31990)io.netty.tryReflectionSetAccessible を設定 (SPARK-29923)S3AFileSystem(例: "s3a://bucket/path")を使用して S3Select または SQS コネクタで S3 にアクセスしている場合、すべて期待どおりに動作することに注意してください。(SPARK-30968)
to_timestamp のような SQL 関数で発生する可能性があります。これは Spark 3.0.1 で修正される予定です。(SPARK-31939)最後に、しかし非常に重要なことですが、このリリースは以下の貢献者なしには不可能でした: Aaruna Godthi, Adam Binford, Adi Muraru, Adrian Tanase, Ajith S, Akshat Bordia, Ala Luszczak, Aleksandr Kashkirov, Alessandro Bellina, Alex Hagerman, Ali Afroozeh, Ali Smesseim, Alon Doron, Aman Omer, Anastasios Zouzias, Anca Sarb, Andre Sa De Mello, Andrew Crosby, Andy Grove, Andy Zhang, Ankit Raj Boudh, Ankur Gupta, Anton Kirillov, Anton Okolnychyi, Anton Yanchenko, Artem Kalchenko, Artem Kupchinskiy, Artsiom Yudovin, Arun Mahadevan, Arun Pandian, Asaf Levy, Attila Zsolt Piros, Bago Amirbekian, Baohe Zhang, Bartosz Konieczny, Behroz Sikander, Ben Ryves, Bo Hai, Bogdan Ghit, Boris Boutkov, Boris Shminke, Branden Smith, Brandon Krieger, Brian Scannell, Brooke Wenig, Bruce Robbins, Bryan Cutler, Burak Yavuz, Carson Wang, Chaerim Yeo, Chakravarthi, Chandni Singh, Chandu Kavar, Chaoqun Li, Chen Hao, Cheng Lian, Chenxiao Mao, Chitral Verma, Chris Martin, Chris Zhao, Christian Clauss, Christian Stuart, Cody Koeninger, Colin Ma, Cong Du, DB Tsai, Dang Minh Dung, Daoyuan Wang, Darcy Shen, Darren Tirto, Dave DeCaprio, David Lewis, David Lindelof, David Navas, David Toneian, David Vogelbacher, David Vrba, David Yang, Deepyaman Datta, Devaraj K, Dhruve Ashar, Dianjun Ma, Dilip Biswal, Dima Kamalov, Dongdong Hong, Dongjoon Hyun, Dooyoung Hwang, Douglas R Colkitt, Drew Robb, Dylan Guedes, Edgar Rodriguez, Edwina Lu, Emil Sandsto, Enrico Minack, Eren Avsarogullari, Eric Chang, Eric Liang, Eric Meisel, Eric Wu, Erik Christiansen, Erik Erlandson, Eyal Zituny, Fei Wang, Felix Cheung, Fokko Driesprong, Fuwang Hu, Gabbi Merz, Gabor Somogyi, Gengliang Wang, German Schiavon Matteo, Giovanni Lanzani, Greg Senia, Guangxin Wang, Guilherme Souza, Guy Khazma, Haiyang Yu, Helen Yu, Hemanth Meka, Henrique Goulart, Henry D, Herman Van Hovell, Hirobe Keiichi, Holden Karau, Hossein Falaki, Huaxin Gao, Huon Wilson, Hyukjin Kwon, Icysandwich, Ievgen Prokhorenko, Igor Calabria, Ilan Filonenko, Ilya Matiach, Imran Rashid, Ivan Gozali, Ivan Vergiliev, Izek Greenfield, Jacek Laskowski, Jackey Lee, Jagadesh Kiran, Jalpan Randeri, James Lamb, Jamison Bennett, Jash Gala, Jatin Puri, Javier Fuentes, Jeff Evans, Jenny, Jesse Cai, Jiaan Geng, Jiafu Zhang, Jiajia Li, Jian Tang, Jiaqi Li, Jiaxin Shan, Jing Chen He, Joan Fontanals, Jobit Mathew, Joel Genter, John Ayad, John Bauer, John Zhuge, Jorge Machado, Jose Luis Pedrosa, Jose Torres, Joseph K. Bradley, Josh Rosen, Jules Damji, Julien Peloton, Juliusz Sompolski, Jungtaek Lim, Junjie Chen, Justin Uang, Kang Zhou, Karthikeyan Singaravelan, Karuppayya Rajendran, Kazuaki Ishizaki, Ke Jia, Keiji Yoshida, Keith Sun, Kengo Seki, Kent Yao, Ketan Kunde, Kevin Yu, Koert Kuipers, Kousuke Saruta, Kris Mok, Lantao Jin, Lee Dongjin, Lee Moon Soo, Li Hao, Li Jin, Liang Chen, Liang Li, Liang Zhang, Liang-Chi Hsieh, Lijia Liu, Lingang Deng, Lipeng Zhu, Liu Xiao, Liu, Linhong, Liwen Sun, Luca Canali, MJ Tang, Maciej Szymkiewicz, Manu Zhang, Marcelo Vanzin, Marco Gaido, Marek Simunek, Mark Pavey, Martin Junghanns, Martin Loncaric, Maryann Xue, Masahiro Kazama, Matt Hawes, Matt Molek, Matt Stillwell, Matthew Cheah, Maxim Gekk, Maxim Kolesnikov, Mellacheruvu Sandeep, Michael Allman, Michael Chirico, Michael Styles, Michal Senkyr, Mick Jermsurawong, Mike Kaplinskiy, Mingcong Han, Mukul Murthy, Nagaram Prasad Addepally, Nandor Kollar, Neal Song, Neo Chien, Nicholas Chammas, Nicholas Marion, Nick Karpov, Nicola Bova, Nicolas Fraison, Nihar Sheth, Nik Vanderhoof, Nikita Gorbachevsky, Nikita Konda, Ninad Ingole, Niranjan Artal, Nishchal Venkataramana, Norman Maurer, Ohad Raviv, Oleg Kuznetsov, Oleksii Kachaiev, Oleksii Shkarupin, Oliver Urs Lenz, Onur Satici, Owen O’Malley, Ozan Cicekci, Pablo Langa Blanco, Parker Hegstrom, Parth Chandra, Parth Gandhi, Patrick Brown, Patrick Cording, Patrick Pisciuneri, Pavithra Ramachandran, Peng Bo, Pengcheng Liu, Petar Petrov, Peter G. Horvath, Peter Parente, Peter Toth, Philipse Guo, Prakhar Jain, Pralabh Kumar, Praneet Sharma, Prashant Sharma, Qi Shao, Qianyang Yu, Rafael Renaudin, Rahij Ramsharan, Rahul Mahadev, Rakesh Raushan, Rekha Joshi, Reynold Xin, Reza Safi, Rob Russo, Rob Vesse, Robert (Bobby) Evans, Rong Ma, Ross Lodge, Ruben Fiszel, Ruifeng Zheng, Ruilei Ma, Russell Spitzer, Ryan Blue, Ryne Yang, Sahil Takiar, Saisai Shao, Sam Tran, Samuel L. Setegne, Sandeep Katta, Sangram Gaikwad, Sanket Chintapalli, Sanket Reddy, Sarth Frey, Saurabh Chawla, Sean Owen, Sergey Zhemzhitsky, Seth Fitzsimmons, Shahid, Shahin Shakeri, Shane Knapp, Shanyu Zhao, Shaochen Shi, Sharanabasappa G Keriwaddi, Sharif Ahmad, Shiv Prashant Sood, Shivakumar Sondur, Shixiong Zhu, Shuheng Dai, Shuming Li, Simeon Simeonov, Song Jun, Stan Zhai, Stavros Kontopoulos, Stefaan Lippens, Steve Loughran, Steven Aerts, Steven Rand, Sujith Chacko, Sun Ke, Sunitha Kambhampati, Szilard Nemeth, Tae-kyeom, Kim, Takanobu Asanuma, Takeshi Yamamuro, Takuya UESHIN, Tarush Grover, Tathagata Das, Terry Kim, Thomas D’Silva, Thomas Graves, Tianshi Zhu, Tiantian Han, Tibor Csogor, Tin Hang To, Ting Yang, Tingbing Zuo, Tom Van Bussel, Tomoko Komiyama, Tony Zhang, TopGunViper, Udbhav Agrawal, Uncle Gen, Vaclav Kosar, Venkata Krishnan Sowrirajan, Viktor Tarasenko, Vinod KC, Vinoo Ganesh, Vladimir Kuriatkov, Wang Shuo, Wayne Zhang, Wei Zhang, Weichen Xu, Weiqiang Zhuang, Weiyi Huang, Wenchen Fan, Wenjie Wu, Wesley Hoffman, William Hyun, William Montaz, William Wong, Wing Yew Poon, Woudy Gao, Wu, Xiaochang, XU Duo, Xian Liu, Xiangrui Meng, Xianjin YE, Xianyang Liu, Xianyin Xin, Xiao Li, Xiaoyuan Ding, Ximo Guanter, Xingbo Jiang, Xingcan Cui, Xinglong Wang, Xinrong Meng, XiuLi Wei, Xuedong Luan, Xuesen Liang, Xuewen Cao, Yadong Song, Yan Ma, Yanbo Liang, Yang Jie, Yanlin Wang, Yesheng Ma, Yi Wu, Yi Zhu, Yifei Huang, Yiheng Wang, Yijie Fan, Yin Huai, Yishuang Lu, Yizhong Zhang, Yogesh Garg, Yongjin Zhou, Yongqiang Chai, Younggyu Chun, Yuanjian Li, Yucai Yu, Yuchen Huo, Yuexin Zhang, Yuhao Yang, Yuli Fiterman, Yuming Wang, Yun Zou, Zebing Lin, Zhenhua Wang, Zhou Jiang, Zhu, Lipeng, codeborui, cxzl25, dengziming, deshanxiao, eatoncys, hehuiyuan, highmoutain, huangtianhua, liucht-inspur, mob-ai, nooberfsh, roland1982, teeyog, tools4origins, triplesheep, ulysses-you, wackxu, wangjiaochun, wangshisan, wenfang6, wenxuanguan