今天试用了一下Spark的机器学习,体验如下:
第一步,导入数据
我们使用Iris数据集,做一个分类,首先要把csv文件导入。这里用到了spark的csv包,不明白为什么这么常见的功能不是内置的,还需要额外加载。
--packages com.databricks:spark-csv_2.11:1.4.0
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
df = sqlContext.read.format('com.databricks.spark.csv')
.options(header='true', inferschema='true')
.load('iris.csv')
# Displays the content of the DataFrame to stdout
df.show()
结果如下:
+-----+------------+-----------+------------+-----------+-------+
|rowid|Sepal.Length|Sepal.Width|Petal.Length|Petal.Width|Species|
+-----+------------+-----------+------------+-----------+-------+
| 1| 5.1| 3.5| 1.4| 0.2| setosa|
| 2| 4.9| 3.0| 1.4| 0.2| setosa|
| 3| 4.7| 3.2| 1.3| 0.2| setosa|
| 4| 4.6| 3.1| 1.5| 0.2| setosa|
| 5| 5.0| 3.6| 1.4| 0.2| setosa|
| 6| 5.4| 3.9| 1.7| 0.4| setosa|
| 7| 4.6| 3.4| 1.4| 0.3| setosa|
| 8| 5.0| 3.4| 1.5| 0.2| setosa|
| 9| 4.4| 2.9| 1.4| 0.2| setosa|
| 10| 4.9| 3.1| 1.5| 0.1| setosa|
| 11| 5.4| 3.7| 1.5| 0.2| setosa|
| 12| 4.8| 3.4| 1.6| 0.2| setosa|
| 13| 4.8| 3.0| 1.4| 0.1| setosa|
| 14| 4.3| 3.0| 1.1| 0.1| setosa|
| 15| 5.8| 4.0| 1.2| 0.2| setosa|
| 16| 5.7| 4.4| 1.5| 0.4| setosa|
| 17| 5.4| 3.9| 1.3| 0.4| setosa|
| 18| 5.1| 3.5| 1.4| 0.3| setosa|
| 19| 5.7| 3.8| 1.7| 0.3| setosa|
| 20| 5.1| 3.8| 1.5| 0.3| setosa|
+-----+------------+-----------+------------+-----------+-------+
only showing top 20 rows