2020-01-06 學習記錄

  爲了可以更加優美的寫blog,今天專門看了下markdown的文檔。先嚐試下,反正之後有的要寫了。
  言歸正傳,先總結下今天學習到的東西。算法

學習總結:

1. pyspark的實際使用操做

  pyspark已經學習的差很少了,因此也直接找了個例子來試了下手。具體的過程先不貼出來了,由於不是在本地作的,不太好記錄過程。說一下學習的心得:
  1. 目前瞭解到的pyspark有2種經常使用的類,一種是RDD一種是Dataframe。而後Dataframe能夠經過createOrReplaceTempView函數或者sqlContext.registerDataFrameAsTable來轉換爲表,而後經過sqlContext.sql(「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

建表的兩種方法:markdown

interactions_df.createOrReplaceTempView("interactions")   

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

查詢數據:app

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的知識了。tcp

而後從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這種集成類算法,有點亂,後續須要本身補齊算法的知識。這裏就不作詳解了,後續應該會寫出一篇專門關於算法的文章。spa

相關文章
相關標籤/搜索