2020-01-06 学习记录

  为了能够更加优美的写blog,今天专门看了下markdown的文档。先尝试下,反正以后有的要写了。

  言归正传,先总结下今天学习到的东西。

学习总结:

1. pyspark的实际使用操作

  pyspark已经学习的差不多了,所以也直接找了个例子来试了下手。具体的过程先不贴出来了,因为不是在本地做的,不太好记录过程。说一下学习的心得:

  1. 目前了解到的pyspark有2种常用的类,一种是RDD一种是Dataframe。然后Dataframe可以通过createOrReplaceTempView函数或者sqlContext.registerDataFrameAsTable来转换为表,然后通过sqlContext.sql(“sql 表达式”)来查询和操作。

import findspark                      #整段都是初始化的过程
findspark.init()
import os
import pyspark
from time import time
data_file = "../data/kddcup.data_10_percent_corrected"
sc = pyspark.SparkContext(appName="test")
raw_data = sc.textFile(data_file).cache()

from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
interactions_df = sqlContext.createDataFrame(row_data)          #创建了DF

建表的两种方法:

interactions_df.createOrReplaceTempView("interactions")   

sqlContext.registerDataFrameAsTable(df=interactions_df, tableName='interactions_df')

查询数据:

sqlContext.sql("select * from interactions_df where protocol_type='tcp'").show(5)

out:
+---------+--------+----+-------------+-------+---------+
|dst\_bytes|duration|flag|protocol\_type|service|src\_bytes|
+---------+--------+----+-------------+-------+---------+
|     5450|       0|  SF|          tcp|   http|      181|
|      486|       0|  SF|          tcp|   http|      239|
|     1337|       0|  SF|          tcp|   http|      235|
|     1337|       0|  SF|          tcp|   http|      219|
|     2032|       0|  SF|          tcp|   http|      217|
+---------+--------+----+-------------+-------+---------+

我们可以看到使用DF构建表以后我们就可以是用一般的SQL语句来对数据进行查询了,包括SQL自带的一些功能函数,如group by, order by, distinct,count等等。这样需要的就是sql的知识了。

然后从table转回DF:

sqlContext.table('interactions_df')

out:
DataFrame [dst_bytes: bigint, duration: bigint, flag: string, protocol_type: string, service: string, src_bytes: bigint]

转换起来也非常的方便。

但是这就留下了一个思考:

我们有了RDD,DF和TABLE这些储存数据的工具,那么如何抉择呢?

2. 集成算法的一些知识

   今天主要讲了XGBOOST, GBDT这种集成类算法,有点乱,后续需要自己补齐算法的知识。这里就不做详解了,后续应该会写出一篇专门关于算法的文章。

我来评几句
登录后评论

已发表评论数()

相关站点

热门文章