如何通过Intellij IDE运行MLlib使用示例?

时间:2019-07-07 18:44:56

标签: scala intellij-idea apache-spark-mllib

我绝对是Scala的初学者,我想在一些非常简单的示例上测试Spark MLlib的机器学习库。

我以MLlib主指南"Basic Statistics"的第一个示例为例,尝试使用IntelliJ IDEA在工作表中重现它,并完全按照SCALA documentation的描述进行了初始化,并正确导入了所有库依赖关系。 / p>

下面是代码:

import org.apache.spark.ml.linalg.{Matrix, Vectors}
import org.apache.spark.ml.stat.Correlation
import org.apache.spark.sql.Row

val data = Seq(
  Vectors.sparse(4, Seq((0, 1.0), (3, -2.0))),
  Vectors.dense(4.0, 5.0, 0.0, 3.0),
  Vectors.dense(6.0, 7.0, 0.0, 8.0),
  Vectors.sparse(4, Seq((0, 9.0), (3, 1.0)))
)

val df = data.map(Tuple1.apply).toDF("features")
val Row(coeff1: Matrix) = Correlation.corr(df, "features").head
println(s"Pearson correlation matrix:\n $coeff1")

val Row(coeff2: Matrix) = Correlation.corr(df, "features", "spearman").head
println(s"Spearman correlation matrix:\n $coeff2")

toDF出现问题:IntelliJ无法解析此符号,因此无法创建数据框。 我想确切地知道如何解决此问题。我尝试使用

val sqlContext= new org.apache.spark.sql.SQLContext(sc)
import sqlContext.implicits._

类似于SPARK/SQL:spark can't resolve symbol toDF中所述,但没有用。 继续学习并尝试MLlib指南的下一个示例,将非常感谢您提供确切的解决方案。

1 个答案:

答案 0 :(得分:0)

我刚刚发现我必须正确初始化Spark会话。这是要添加的代码。

import tkinter as tk
import random

def lunchLocation():

    location_list = ['Pinoeer Mrt', 'Joo Koon Mrt', 'Avenue 3 - Hot Sun', 'Walk 1km - Hot Sun']

    Location = random.choice(location_list)
    print (Location)
    if Location == 'Pinoeer Mrt':
        print("Today we eat at ",Location ," lah!")
        canvas1.create_window(300, 150, window=button1)

def foodChoicePinoeer():
    ...

root = tk.Tk()

canvas1 = tk.Canvas(root, width=500, height=500)
canvas1.pack()

button1 = tk.Button(text='Choose Food', command=foodChoicePinoeer, bg='brown', fg='white')
lunchLocation()

root.mainloop()