PySpark 學習筆記(一) Quick Start


背景說明

實習期間需要使用Spark處理一些集群上的數據,其實Spark是基於Scala語言的(和Java比較接近),但我是Python用的多,況且Spark2.0之后對Python的支持友好了許多,於是我就使用PySpark來學習了。

因為是直接使用現有的集群,這里不會涉及配置spark環境的問題,我使用的版本是:PySpark 2.1.0

最好的參考資料當然是官方文檔,
一個官方的QuickStart 也是可以看看的。

但我在看文檔,自己測試的時候卻遇到一些問題,這和實際的配置情況有關。

Quick Start

官方的quick start是讓我們在spark-shell開始的,這確實是個好主意。
但是當我進入spark目錄,照着教程敲出 ./bin/pyspark 想啟動spark-shell的時候,立馬給我報個錯:
java.sql.SQLException: A read-only user or a user in a read-only database is not permitted to disable read-only mode on a connection.

小白的我問了一下同事,原來啟動這個spark-shell還要在本地創建一個文件型的database的,在spark文件夾下(在root下)我是只有讀的權限,沒有寫的權限的,於是我回到我的用戶文件夾(我有完全的權限),鍵入 類似/usr/local/spark/bin/pyspark 這樣的命令,就啟動了spark-shell了。

quit()可以退出,不要 ctrl+C這么暴力了。
進入命令行后,照着教程敲唄, >>> textFile = spark.read.text("README.md")
生活總是充滿驚喜,這是報了另一個錯: pyspark.sql.utils.AnalysisException: u'Path does not exist: hdfs:****/README.md
這個錯不難猜到,官方教程的意思是spark文件夾下有Readme.md這個文件,想把它作為一個例子,我也確實把這個文件copy到我的目錄下了,但是這台機器的spark應該被配置過,它讀文件默認是從HDFS上讀的,好嘛,我就從HDFS上找一些文件來練練手。

權限管理是比較嚴格的,HDFS上我的讀權限也只局限在我的用戶路徑,也是默認路徑。
之后spark-shell上的初體驗可以順着官方文檔,就不細講了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM