1. 程式人生 > >資料探勘工具---Spark的使用方法(二)

資料探勘工具---Spark的使用方法(二)

Spark使用過程中報錯彙總

報錯1: “ValueError: Cannot run multiple SparkContexts at once; existing SparkContext(app=PySparkShell, master=local[*]) ”
原因:出現這個錯誤是因為之前已經啟動了SparkContext
解決方法:檢視程式碼,看是否有多次執行SparkContext例項;也可以先關閉spark(sc.stop() // 關閉spark ),然後再啟動。
報錯2: “AttributeError: ‘PipelinedRDD’ object has no attribute ‘toDF’”
原因:toDF()是執行在Sparksession(1.X版本的Spark中為SQLContext)內部的一個補丁,如果有其他函式用到toDF(),那麼需要先建立SparkSession()。
解決方法:以IndexedRow()為例,當利用IndexedRow()產生RDD時,需要

sc=SparkContext()
SparkSession(sc)#利用SparkSession來使sc具有處理PipelinedRDD的能力
indexedRows = sc.parallelize([IndexedRow(0, [1, 2, 3]),IndexedRow(1, [4, 5, 6]),IndexedRow(2, [7, 8, 9]),IndexedRow(3, [10, 11, 12])])