亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

基于Spark的零售銷售數(shù)據(jù)分析系統(tǒng)設(shè)計(jì)與畢設(shè)實(shí)戰(zhàn)指南

基于Spark的零售銷售數(shù)據(jù)分析系統(tǒng)設(shè)計(jì)與畢設(shè)實(shí)戰(zhàn)指南 最近好幾個(gè)同學(xué)在問(wèn)我畢設(shè)選題的事聊得最多的就是“基于Spark的零售銷售數(shù)據(jù)分析系統(tǒng)”。說(shuō)實(shí)話這個(gè)題目在計(jì)算機(jī)畢業(yè)設(shè)計(jì)里確實(shí)屬于“穩(wěn)中帶秀”的類型——它不像純管理系統(tǒng)那樣技術(shù)含量低也不像純算法研究那樣容易卡殼正好卡在“大數(shù)據(jù)平臺(tái) 業(yè)務(wù)分析 機(jī)器學(xué)習(xí)”這個(gè)交叉點(diǎn)上。不管你是想老老實(shí)實(shí)拿個(gè)好分?jǐn)?shù)還是想在簡(jiǎn)歷里寫一筆有分量的項(xiàng)目經(jīng)歷這個(gè)方向都值得認(rèn)真考慮。這篇文章我就按照實(shí)際做畢設(shè)的思路把這個(gè)項(xiàng)目從選題價(jià)值、系統(tǒng)設(shè)計(jì)、核心代碼實(shí)現(xiàn)到答辯避坑完整拆一遍。內(nèi)容全部基于我自己的實(shí)操經(jīng)驗(yàn)代碼和配置都是可以直接拿來(lái)改的希望能幫你省掉不少?gòu)澛贰?. 選題價(jià)值與整體設(shè)計(jì)思路1.1 為什么這個(gè)選題值得做先說(shuō)結(jié)論這個(gè)題目在本科畢設(shè)里屬于“性價(jià)比極高”的那一類。原因有三點(diǎn)。第一技術(shù)棧覆蓋面廣。這個(gè)題目天然要求你接觸Spark、Hadoop生態(tài)、Python數(shù)據(jù)處理、機(jī)器學(xué)習(xí)和Web可視化一套流程走下來(lái)簡(jiǎn)歷上能寫的技術(shù)點(diǎn)非常集中。用過(guò)PySpark、寫過(guò)Spark SQL、跑過(guò)MLlib算法這些經(jīng)歷在校招簡(jiǎn)歷上都是實(shí)打?qū)嵉募臃猪?xiàng)。第二業(yè)務(wù)場(chǎng)景真實(shí)。零售銷售數(shù)據(jù)分析不是憑空捏造的場(chǎng)景電商、商超、生鮮、品牌方都需要這類能力。你做出來(lái)的東西不管是用戶畫像、商品關(guān)聯(lián)推薦還是銷量預(yù)測(cè)都能直接說(shuō)明白“這個(gè)東西企業(yè)里怎么用”答辯的時(shí)候說(shuō)服力很強(qiáng)。第三工作量適中不容易翻車。這個(gè)題目最大的好處是“下限有保障”——哪怕你只完成了數(shù)據(jù)清洗、多維統(tǒng)計(jì)分析和可視化也已經(jīng)是一套完整可演示的系統(tǒng)。機(jī)器學(xué)習(xí)的部分屬于錦上添花做不好也不影響主體框架容錯(cuò)空間比純粹算法類題目大得多。1.2 系統(tǒng)架構(gòu)從原始數(shù)據(jù)到分析結(jié)果一個(gè)標(biāo)準(zhǔn)的Spark零售數(shù)據(jù)分析系統(tǒng)數(shù)據(jù)流向大概是這樣的數(shù)據(jù)源CSV/MySQL模擬數(shù)據(jù)→ 數(shù)據(jù)清洗PySpark ETL→ 分布式存儲(chǔ)HDFS或本地 → Spark SQL/DataFrame多維分析 → MLlib機(jī)器學(xué)習(xí) → MySQL/文件結(jié)果 → Flask/Streamlit可視化展示畢設(shè)階段不需要真的搭一套完整集群本地用Spark Standalone模式就夠了。一臺(tái)電腦、一個(gè)PySpark環(huán)境、一份模擬數(shù)據(jù)集就能把整個(gè)流程跑通。架構(gòu)上我建議把“存儲(chǔ)層”和“計(jì)算層”解耦數(shù)據(jù)先落成Parquet格式分析任務(wù)從Parquet讀取這樣既能體驗(yàn)列式存儲(chǔ)的好處也為以后擴(kuò)展到HDFS打基礎(chǔ)。數(shù)據(jù)源這塊常見(jiàn)的做法有兩種一種是造數(shù)腳本生成CSV另一種是提前往MySQL導(dǎo)一批數(shù)據(jù)。我推薦前者因?yàn)镃SV造數(shù)更靈活可以自由控制數(shù)據(jù)量和字段復(fù)雜度而且Spark讀CSV/HDFS/Parquet的API都很成熟。等整套流程跑順了再寫個(gè)Sqoop或者DataFrame的JDBC讀寫把MySQL數(shù)據(jù)源兼容進(jìn)去就是一個(gè)完整的增量升級(jí)路徑。1.3 功能模塊劃分按照答辯展示的流暢度我把整個(gè)系統(tǒng)拆成四個(gè)核心模塊數(shù)據(jù)預(yù)處理模塊負(fù)責(zé)數(shù)據(jù)接入、清洗、格式標(biāo)準(zhǔn)化、分區(qū)存儲(chǔ)。多維統(tǒng)計(jì)分析模塊銷售總覽、地區(qū)/渠道/品類交叉分析、TOP10商品、月度趨勢(shì)、同環(huán)比。機(jī)器學(xué)習(xí)模塊用戶分群KMeans、商品關(guān)聯(lián)推薦FP-Growth、銷量預(yù)測(cè)線性回歸/決策樹??梢暬故灸K通過(guò)圖表呈現(xiàn)分析結(jié)果同時(shí)支持交互篩選。這四個(gè)模塊正好串起一條完整的邏輯鏈數(shù)據(jù)進(jìn)來(lái)先變成“干凈的表”再變成“看得懂的報(bào)表”然后變成“能預(yù)測(cè)未來(lái)的模型”最后變成“能點(diǎn)能篩的看板”。答辯的時(shí)候照著這條線去講思路會(huì)非常清晰。2. 數(shù)據(jù)源與預(yù)處理環(huán)節(jié)的設(shè)計(jì)2.1 零售數(shù)據(jù)從哪來(lái)字段設(shè)計(jì)要貼近真實(shí)很多同學(xué)在這個(gè)環(huán)節(jié)容易犯一個(gè)錯(cuò)誤——隨便找份數(shù)據(jù)就開(kāi)始跑跑完發(fā)現(xiàn)字段太少做不了什么像樣的分析。我建議自己動(dòng)手寫一個(gè)Python造數(shù)腳本把表結(jié)構(gòu)設(shè)計(jì)好再把數(shù)據(jù)量控制在20萬(wàn)到50萬(wàn)條訂單記錄左右既能體現(xiàn)大數(shù)據(jù)處理能力又不會(huì)讓本地Spark跑得太吃力。零售銷售數(shù)據(jù)分析系統(tǒng)里訂單明細(xì)表一般包含這些核心字段字段名類型說(shuō)明order_idstring訂單編號(hào)user_idstring用戶IDproduct_idstring商品IDproduct_categorystring商品品類quantityint購(gòu)買數(shù)量unit_pricedouble單價(jià)total_amountdouble成交金額order_timetimestamp下單時(shí)間channelstring銷售渠道線上/線下regionstring地區(qū)華北/華東/華南等字段多一些的好處是分析角度多按時(shí)間看趨勢(shì)、按地區(qū)看差異、按渠道看貢獻(xiàn)、按用戶看行為。我實(shí)際做的時(shí)候還額外加了一個(gè)is_return字段表示是否退貨這樣可以在數(shù)據(jù)清洗環(huán)節(jié)做一版“剔除退貨后凈銷售額”的分析答辯時(shí)能體現(xiàn)你對(duì)業(yè)務(wù)細(xì)節(jié)的思考。2.2 數(shù)據(jù)清洗垃圾進(jìn)垃圾出數(shù)據(jù)清洗是最枯燥但最重要的環(huán)節(jié)。Spark里處理大規(guī)模臟數(shù)據(jù)的價(jià)值恰恰體現(xiàn)在你用DataFrame API寫出的清洗邏輯可以分布式執(zhí)行而不是pandas那樣單機(jī)跑。我總結(jié)的清洗流程大致是四步去重按order_id去重保留第一條記錄??罩堤幚黻P(guān)鍵字段如total_amount、order_time為空的行直接過(guò)濾非關(guān)鍵字段用默認(rèn)值填充。異常值過(guò)濾金額小于等于0、數(shù)量小于等于0的單子剔除單價(jià)超過(guò)合理范圍比如單品超過(guò)5000元的視為異常單獨(dú)存到一個(gè)異常表里不直接丟棄。格式規(guī)整時(shí)間字符串統(tǒng)一轉(zhuǎn)成timestamp類型地區(qū)、渠道字段做枚舉校驗(yàn)比如只允許固定的幾個(gè)值。這套邏輯在PySpark里大概長(zhǎng)這樣from pyspark.sql.functions import col, to_timestamp, count, isnan, when # 讀取原始CSV df spark.read.csv(data/raw_orders.csv, headerTrue, inferSchemaTrue) # 1. 去重 df_clean df.dropDuplicates([order_id]) # 2.3. 空值和異常值過(guò)濾 df_clean df_clean.filter( col(total_amount).isNotNull() col(order_time).isNotNull() (col(total_amount) 0) (col(quantity) 0) ) # 4. 時(shí)間字段規(guī)整 df_clean df_clean.withColumn( order_time_ts, to_timestamp(col(order_time), yyyy-MM-dd HH:mm:ss) ) # 5. 抽取時(shí)間特征方便后續(xù)按天/月聚合 from pyspark.sql.functions import year, month, dayofmonth, hour df_clean df_clean.withColumn(order_year, year(col(order_time_ts))) \ .withColumn(order_month, month(col(order_time_ts))) \ .withColumn(order_day, dayofmonth(col(order_time_ts))) \ .withColumn(order_hour, hour(col(order_time_ts)))提示清洗邏輯寫完別急著跑全量數(shù)據(jù)先limit(1000)驗(yàn)證一下結(jié)果確認(rèn)過(guò)濾條件和類型轉(zhuǎn)換都沒(méi)問(wèn)題再跑全量。全量跑一次幾十萬(wàn)條記錄要幾分鐘如果中間報(bào)錯(cuò)改來(lái)改去很浪費(fèi)時(shí)間。2.3 數(shù)據(jù)落盤Parquet 分區(qū)存儲(chǔ)清洗完的數(shù)據(jù)我強(qiáng)烈建議寫成Parquet格式并按order_year/order_month分區(qū)存儲(chǔ)。Parquet是列式存儲(chǔ)查詢時(shí)只需要讀取涉及的列壓縮率高在Spark里是性能最好的格式之一。分區(qū)的好處更直接后續(xù)做“某月銷售統(tǒng)計(jì)”時(shí)Spark可以直接做分區(qū)裁剪只掃必要的數(shù)據(jù)。df_clean.write.mode(overwrite) \ .partitionBy(order_year, order_month) \ .parquet(data/clean_orders)這個(gè)寫法會(huì)生成一個(gè)目錄結(jié)構(gòu)data/clean_orders/order_year2024/order_month06/后續(xù)分析代碼只需要讀父目錄Spark自動(dòng)識(shí)別分區(qū)字段。3. 基于PySpark的核心分析實(shí)現(xiàn)3.1 環(huán)境搭建與項(xiàng)目結(jié)構(gòu)規(guī)劃先說(shuō)環(huán)境。PySpark版本的選擇要謹(jǐn)慎我用的是Spark 3.3.2 Python 3.9兼容性比較穩(wěn)。這里有個(gè)常見(jiàn)坑如果Python版本太高比如3.11、3.12有些PySpark版本會(huì)報(bào)錯(cuò)尤其是和pandas、pyarrow交互的時(shí)候。建議直接配一個(gè)獨(dú)立的conda環(huán)境Python就選3.8或3.9安全省事。conda create -n spark_project python3.9 conda activate spark_project pip install pyspark3.3.2 pandas pyarrow matplotlib flask streamlit在Windows上跑PySpark需要配置Hadoop的winutils.exe否則本地模式也會(huì)報(bào)錯(cuò)。這里提供一個(gè)簡(jiǎn)潔的配置方法下載對(duì)應(yīng)Hadoop版本的winutils.exe放到某個(gè)目錄比如D:/hadoop/bin然后設(shè)置環(huán)境變量HADOOP_HOME和PATH。網(wǎng)上相關(guān)教程還挺多的遇到問(wèn)題先搜winutils這是最常出現(xiàn)的坑。項(xiàng)目結(jié)構(gòu)方面我建議這樣組織spark_retail_analysis/ ├── data/ │ ├── raw_orders.csv │ ├── clean_orders.parquet/ │ └── output/ # 分析結(jié)果輸出目錄 ├── src/ │ ├── generate_data.py # 造數(shù)腳本 │ ├── etl_clean.py # 數(shù)據(jù)清洗 │ ├── analysis_sales.py # 銷售統(tǒng)計(jì)分析 │ ├── analysis_user.py # 用戶畫像與分群 │ └── analysis_recommend.py # 關(guān)聯(lián)規(guī)則分析 ├── web/ │ ├── app.py # Flask可視化 │ └── templates/ └── requirements.txt模塊拆分開(kāi)的好處是每一部分都能單獨(dú)調(diào)試哪一步出錯(cuò)就只改哪一步不用從頭跑。3.2 銷售統(tǒng)計(jì)分析的代碼實(shí)現(xiàn)銷售分析的核心用一句話概括就是“多維度匯總窗口函數(shù)算指標(biāo)”。先看一個(gè)最基礎(chǔ)的日銷售額統(tǒng)計(jì)from pyspark.sql import SparkSession from pyspark.sql.functions import col, sum, count, avg, round, desc, to_date spark SparkSession.builder \ .appName(RetailSalesAnalysis) \ .master(local[*]) \ .config(spark.sql.shuffle.partitions, 8) \ .getOrCreate() df spark.read.parquet(data/clean_orders) # 計(jì)算每日銷售額 daily_sales df.groupBy(to_date(col(order_time_ts)).alias(date)) \ .agg( round(sum(total_amount), 2).alias(total_sales), count(order_id).alias(order_cnt), round(avg(total_amount), 2).alias(avg_order_value) ) \ .orderBy(date) daily_sales.show(20)你可能發(fā)現(xiàn)這里并沒(méi)有寫復(fù)雜的SQL而是用DataFrame API。PySpark里DataFrame API和Spark SQL的本質(zhì)是一樣的都經(jīng)過(guò)Catalyst優(yōu)化器最終生成的執(zhí)行計(jì)劃是同一套。選擇API還是SQL純看個(gè)人習(xí)慣但我建議在代碼里混用——簡(jiǎn)單的數(shù)據(jù)變換用API復(fù)雜的三表關(guān)聯(lián)用SQL寫視圖再查代碼可讀性更好。再看一個(gè)帶窗口函數(shù)的例子計(jì)算每個(gè)月的銷售額以及環(huán)比增長(zhǎng)率from pyspark.sql.window import Window from pyspark.sql.functions import lag, round monthly_sales df.groupBy(order_year, order_month) \ .agg(round(sum(total_amount), 2).alias(month_sales)) \ .orderBy(order_year, order_month) # 用窗口函數(shù)取上個(gè)月銷售額 windowSpec Window.orderBy(order_year, order_month) monthly_sales monthly_sales.withColumn( prev_month_sales, lag(month_sales, 1).over(windowSpec) ).withColumn( mom_rate, round((col(month_sales) - col(prev_month_sales)) / col(prev_month_sales) * 100, 2) )窗口函數(shù)是數(shù)據(jù)分析里的高頻技能畢設(shè)里只要出現(xiàn)一次答辯老師就會(huì)覺(jué)得你有基本功。類似的思路還可以用在“累計(jì)銷售額”、“每用戶最近一次下單間隔”等指標(biāo)上。3.3 機(jī)器學(xué)習(xí)模塊用戶分群、關(guān)聯(lián)規(guī)則與銷量預(yù)測(cè)機(jī)器學(xué)習(xí)這部分是整個(gè)畢設(shè)的亮點(diǎn)建議至少做兩個(gè)算法一個(gè)聚類、一個(gè)關(guān)聯(lián)規(guī)則有條件再加一個(gè)預(yù)測(cè)模型三個(gè)算法加在一起工作量已經(jīng)非常飽和了。用戶分群KMeans經(jīng)典的RFM模型是把用戶按最近一次消費(fèi)時(shí)間Recency、消費(fèi)頻率Frequency和消費(fèi)金額Monetary三個(gè)維度打分再做聚類分出來(lái)的每一類用戶都能對(duì)應(yīng)一種運(yùn)營(yíng)策略。實(shí)現(xiàn)步驟是用DataFrame按user_id聚合出R、F、M三個(gè)指標(biāo)。用StandardScaler做標(biāo)準(zhǔn)化消除量綱影響。用KMeans做聚類k取4到6之間。給每個(gè)user_id打上cluster標(biāo)簽統(tǒng)計(jì)每個(gè)簇的人群特征。核心代碼如下from pyspark.ml.feature import StandardScaler, VectorAssembler from pyspark.ml.clustering import KMeans from pyspark.sql.functions import col, count, avg, max, min, datediff, current_date # 構(gòu)造RFM特征 rfm df.groupBy(user_id).agg( datediff(current_date(), max(order_time_ts)).alias(recency), count(order_id).alias(frequency), sum(total_amount).alias(monetary) ) # 組裝特征向量并標(biāo)準(zhǔn)化 assembler VectorAssembler(inputCols[recency, frequency, monetary], outputColfeatures) rfm_feat assembler.transform(rfm) scaler StandardScaler(inputColfeatures, outputColscaled_features, withStdTrue, withMeanTrue) scaler_model scaler.fit(rfm_feat) rfm_scaled scaler_model.transform(rfm_feat) # KMeans聚類 kmeans KMeans(featuresColscaled_features, k5, seed42) model kmeans.fit(rfm_scaled) rfm_result model.transform(rfm_scaled) # 查看每個(gè)簇的特征均值 cluster_stats rfm_result.groupBy(prediction).agg( round(avg(recency), 1).alias(avg_recency), round(avg(frequency), 1).alias(avg_frequency), round(avg(monetary), 1).alias(avg_monetary), count(user_id).alias(user_cnt) ).orderBy(prediction) cluster_stats.show()注意KMeans對(duì)異常值非常敏感。如果monetary字段出現(xiàn)極端大額訂單最好在標(biāo)準(zhǔn)化之前做一個(gè)截尾處理比如把超過(guò)99百分位的值替換成該分位數(shù)的值否則聚類結(jié)果很容易被少數(shù)極端用戶帶跑。商品關(guān)聯(lián)推薦FP-GrowthFP-Growth是一種比Apriori更高效的頻繁項(xiàng)集挖掘算法非常適合做“買了A商品的人還買了什么”的關(guān)聯(lián)推薦。在PySpark MLlib里實(shí)現(xiàn)非常簡(jiǎn)潔from pyspark.ml.fpgrowth import FPGrowth # 先把訂單數(shù)據(jù)整理成“每個(gè)訂單的商品列表” user_product df.groupBy(order_id) \ .agg(collect_list(product_id).alias(items)) fp FPGrowth(minSupport0.02, minConfidence0.3, itemsColitems, numPartitions4) fp_model fp.fit(user_product) # 查看關(guān)聯(lián)規(guī)則 fp_model.associationRules.orderBy(confidence, ascendingFalse).show(20)這里有兩個(gè)參數(shù)要解釋一下minSupport0.02表示至少2%的訂單里同時(shí)出現(xiàn)該商品組合數(shù)據(jù)量30萬(wàn)條訂單時(shí)就是6000個(gè)訂單過(guò)濾低頻組合非常有用minConfidence0.3表示買了左側(cè)商品的前提下有30%概率會(huì)買右側(cè)商品低于這個(gè)數(shù)值的規(guī)則基本沒(méi)有業(yè)務(wù)意義。這兩個(gè)參數(shù)需要根據(jù)數(shù)據(jù)分布做調(diào)整數(shù)據(jù)稀疏就調(diào)低數(shù)據(jù)稠密就調(diào)高。銷量預(yù)測(cè)線性回歸或決策樹銷量預(yù)測(cè)的部分我建議不要做復(fù)雜的時(shí)間序列模型而是把問(wèn)題轉(zhuǎn)化成“回歸問(wèn)題”用歷史數(shù)據(jù)構(gòu)造特征預(yù)測(cè)某商品在特定日期的銷量。這樣做的好處是可以用Spark MLlib里現(xiàn)成的特征工程工具。這里提供一種常見(jiàn)做法按商品日期聚合每日銷量然后把星期幾、是否周末、月份、商品品類等作為特征用線性回歸或者決策樹回歸來(lái)建模。from pyspark.ml.feature import StringIndexer, OneHotEncoder, VectorAssembler from pyspark.ml.regression import LinearRegression # 構(gòu)造日銷量數(shù)據(jù) sales_daily df.groupBy(product_id, order_date).agg(sum(quantity).alias(qty)) # 特征工程把日期字段轉(zhuǎn)成星期、月等數(shù)值特征 from pyspark.sql.functions import dayofweek, month, dayofmonth, year sales_feat sales_daily.withColumn(weekday, dayofweek(col(order_date))) \ .withColumn(day, dayofmonth(col(order_date))) \ .withColumn(month, month(col(order_date))) # 品類如果有做編碼 indexer StringIndexer(inputColproduct_id, outputColproduct_idx) sales_feat indexer.fit(sales_feat).transform(sales_feat) # 組合特征 assembler VectorAssembler( inputCols[product_idx, weekday, day, month], outputColfeatures ) data assembler.transform(sales_feat) # 訓(xùn)練測(cè)試集劃分 線性回歸 train, test data.randomSplit([0.8, 0.2], seed42) lr LinearRegression(featuresColfeatures, labelColqty) lr_model lr.fit(train) test_result lr_model.evaluate(test) print(fRMSE: {test_result.rootMeanSquaredError}) print(fR2: {test_result.r2})這個(gè)模型雖然談不上多精準(zhǔn)但意義在于體現(xiàn)“數(shù)據(jù) 特征 - 訓(xùn)練 - 評(píng)估”的完整ML流程。答辯時(shí)可以說(shuō)模型的價(jià)值不在于預(yù)測(cè)未來(lái)每一天的精確值而在于它能快速發(fā)現(xiàn)“某類商品在周末銷量是否顯著高于工作日”這類可執(zhí)行規(guī)律。4. 可視化展示與系統(tǒng)集成4.1 用什么技術(shù)做可視化畢設(shè)里最容易被小看、但實(shí)際最影響感官的部分就是可視化。答辯老師看演示第一眼就是你的圖表界面。這里推薦兩種方案方案AFlask ECharts。Flask作為后端提供JSON接口ECharts做前端圖表。這個(gè)方案專業(yè)感強(qiáng)代碼量也比較大適合有點(diǎn)前端基礎(chǔ)的同學(xué)同時(shí)也是大多數(shù)企業(yè)采用的完整前后端分離雛形。方案BStreamlit。純Python幾十行代碼就能出一個(gè)帶圖表、篩選器、表格的交互頁(yè)面。適合不熟悉前端的同學(xué)能快速出效果。我個(gè)人建議如果時(shí)間充足優(yōu)先選方案A。因?yàn)镕lask ECharts AJAX這套組合在簡(jiǎn)歷上更有說(shuō)服力也方便后續(xù)加接口。時(shí)間緊張或者不想碰前端的Streamlit完全夠用——只要你把分析結(jié)果圖表弄漂亮答辯不會(huì)因?yàn)槟阌昧薙treamlit扣分。以Flask為例一個(gè)最簡(jiǎn)接口可以這樣寫# web/app.py from flask import Flask, jsonify, render_template import json app Flask(__name__) app.route(/) def index(): return render_template(index.html) app.route(/api/daily_sales) def daily_sales(): # 可以在這里加載Spark分析結(jié)果輸出的JSON with open(../data/output/daily_sales.json, r, encodingutf-8) as f: data json.load(f) return jsonify(data)做可視化的核心不在于代碼而在于“哪些分析結(jié)果值得展示”。我的經(jīng)驗(yàn)是不要試圖把所有統(tǒng)計(jì)結(jié)果都懟到頁(yè)面上信息太多反而顯得亂。挑4到5個(gè)核心圖表就夠了折線圖日/月銷售額趨勢(shì)一眼看出增長(zhǎng)和波動(dòng)。柱狀圖銷售TOP10商品、各地區(qū)銷售額。餅圖/環(huán)形圖渠道占比、品類占比。散點(diǎn)圖RFM用戶分群分布用不同顏色代表不同簇。表格/熱力圖用戶分群的特征均值表直觀展示“高價(jià)值用戶”和“普通用戶”的區(qū)別。4.2 把分析結(jié)果導(dǎo)出成JSON在這里Spark的分析結(jié)果要喂給Web端推薦統(tǒng)一輸出成JSON格式保存到data/output/目錄。寫法很簡(jiǎn)單daily_sales.toPandas().to_json(data/output/daily_sales.json, orientrecords, force_asciiFalse)要注意一個(gè)坑toPandas()在PySpark里是“把分布式數(shù)據(jù)收回到Driver節(jié)點(diǎn)再轉(zhuǎn)成pandas DataFrame”如果分析結(jié)果規(guī)模很大比如上百萬(wàn)行Driver內(nèi)存會(huì)爆。畢設(shè)里的統(tǒng)計(jì)結(jié)果一般最多幾千行完全沒(méi)問(wèn)題但如果你要導(dǎo)出用戶級(jí)別的明細(xì)數(shù)據(jù)建議改用df.write.csv()或其他分布式輸出方式不要用toPandas()。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄5.1 本地跑PySpark頻繁內(nèi)存溢出這是最常見(jiàn)的問(wèn)題。默認(rèn)情況下PySpark在本地模式會(huì)使用和機(jī)器同樣多的核心數(shù)每個(gè)core分配一個(gè)executor如果機(jī)器是8核16GSpark可能一次性開(kāi)8個(gè)executor內(nèi)存很快就爆了。解決方法是手動(dòng)限制資源SparkSession創(chuàng)建時(shí)加配置spark SparkSession.builder \ .master(local[2]) \ # 只用2核不要貪多 .config(spark.driver.memory, 4g) \ .config(spark.executor.memory, 4g) \ .config(spark.sql.shuffle.partitions, 4) \ .getOrCreate()spark.sql.shuffle.partitions這個(gè)參數(shù)也很關(guān)鍵。Shuffle的分區(qū)數(shù)默認(rèn)是200做join或groupBy時(shí)會(huì)產(chǎn)生大量小任務(wù)本地跑會(huì)非常慢甚至OOM。把它調(diào)小比如4到8整個(gè)任務(wù)的執(zhí)行效率會(huì)明顯提升。記住一個(gè)原則本地調(diào)試不是集群資源要往小里配而不是往大里配。5.2 數(shù)據(jù)傾斜導(dǎo)致任務(wù)卡死幾十萬(wàn)條訂單數(shù)據(jù)在本地模式一般不會(huì)出嚴(yán)重的數(shù)據(jù)傾斜但如果你把數(shù)據(jù)量加大到幾百萬(wàn)或者按某個(gè)熱點(diǎn)product_id做聚合就會(huì)出現(xiàn)某個(gè)key數(shù)據(jù)量遠(yuǎn)大于其他key導(dǎo)致單個(gè)task執(zhí)行時(shí)間過(guò)長(zhǎng)。畢設(shè)階段遇到數(shù)據(jù)傾斜最簡(jiǎn)單的處理是加鹽salting把熱key拆散成多個(gè)隨機(jī)前綴聚合后再合并。# 示例給product_id加隨機(jī)后綴消除熱點(diǎn) from pyspark.sql.functions import concat, lit, rand df_salted df.withColumn( salted_id, concat(col(product_id), lit(_), (rand() * 10).cast(int)) )這個(gè)技巧作為調(diào)優(yōu)亮點(diǎn)寫進(jìn)論文或者答辯PPT里是很加分的。5.3 Windows下找不到winutils、Hadoop環(huán)境報(bào)錯(cuò)在Windows環(huán)境跑PySparkJava、Hadoop、Spark、Python的版本兼容是個(gè)頭疼的問(wèn)題。我建議直接用conda創(chuàng)建環(huán)境Java用8或11然后專門下載一個(gè)winutils.exe放好。如果你不想折騰還有一個(gè)思路是裝WSLWindows Subsystem for Linux在Linux環(huán)境里跑PySpark基本不會(huì)有winutils問(wèn)題。兩種方式任選我個(gè)人更推薦在Windows用戶直接解決winutils因?yàn)閃SL的GUI交互和文件路徑切換對(duì)畢設(shè)開(kāi)發(fā)不太友好。5.4 答辯時(shí)老師最愛(ài)問(wèn)的幾個(gè)問(wèn)題“你的數(shù)據(jù)量多大為什么用Spark而不是Pandas”這是一個(gè)必問(wèn)題。誠(chéng)實(shí)回答模擬數(shù)據(jù)量在幾十萬(wàn)條單機(jī)pandas確實(shí)能處理。但Spark的分布式架構(gòu)、DataFrame優(yōu)化、內(nèi)存計(jì)算的設(shè)計(jì)目標(biāo)就是為了應(yīng)對(duì)TB級(jí)數(shù)據(jù)。項(xiàng)目里用Spark關(guān)注的是技術(shù)棧的完整性和擴(kuò)展性——當(dāng)數(shù)據(jù)量增長(zhǎng)到千萬(wàn)、億級(jí)時(shí)代碼不需要大規(guī)模改動(dòng)只需要部署到集群。同時(shí)強(qiáng)調(diào)你用到了分區(qū)存儲(chǔ)、列式存儲(chǔ)、Spark SQL優(yōu)化器等特性這不是pandas能替代的?!癒Means的k是怎么確定的”不要說(shuō)“我隨便選的”。正確的回答是用了肘部法則在不同k值下計(jì)算輪廓系數(shù)或誤差平方和SSE找出拐點(diǎn)同時(shí)結(jié)合業(yè)務(wù)把用戶按價(jià)值粗分成4-6類是常見(jiàn)的運(yùn)營(yíng)習(xí)慣?!瓣P(guān)聯(lián)規(guī)則的置信度和支持度是什么意思”用一句話解釋支持度是“包含該商品組合的訂單占總訂單的比例”置信度是“買了A的情況下買B的概率”。再補(bǔ)一句“這兩個(gè)值設(shè)太高會(huì)丟失有效規(guī)則設(shè)太低會(huì)產(chǎn)生大量無(wú)意義規(guī)則需要根據(jù)數(shù)據(jù)分布反復(fù)調(diào)參”?!澳愕哪P驮趺丛u(píng)估”分類模型說(shuō)準(zhǔn)確率、召回率、AUC聚類模型說(shuō)輪廓系數(shù)回歸模型說(shuō)RMSE、R2。即便只是簡(jiǎn)單實(shí)現(xiàn)也必須知道評(píng)估指標(biāo)的含義。6. 從畢設(shè)到作品集的加分項(xiàng)如果時(shí)間充裕這個(gè)項(xiàng)目還有幾個(gè)“花小力氣、大加分”的擴(kuò)展方向。第一個(gè)是把Spark的流處理加進(jìn)來(lái)。用Structured Streaming做一個(gè)模擬實(shí)時(shí)訂單統(tǒng)計(jì)的小模塊從Socket或者Kafka讀數(shù)據(jù)每5秒鐘更新一次銷售額。哪怕只是demo級(jí)別也能讓答辯的“技術(shù)先進(jìn)性”上一個(gè)臺(tái)階。第二個(gè)是把整個(gè)流程沉淀成定時(shí)任務(wù)。用APScheduler或者crontab每天定時(shí)跑一次清洗和統(tǒng)計(jì)任務(wù)把結(jié)果自動(dòng)寫入MySQL或者生成新JSON。這能體現(xiàn)出工程化意識(shí)而不只是跑一次的一次性腳本。第三個(gè)是寫一份漂亮的README和部署文檔。很多人忽略這一點(diǎn)但答辯評(píng)分里論文和文檔的比重不小。把項(xiàng)目結(jié)構(gòu)、環(huán)境配置、運(yùn)行步驟、結(jié)果截圖整理清楚對(duì)老師來(lái)說(shuō)就是“這個(gè)學(xué)生做事有章法”的直接證據(jù)。第四個(gè)是加一個(gè)“分析報(bào)告自動(dòng)生成”的功能。把統(tǒng)計(jì)結(jié)果和圖表匯總成一個(gè)網(wǎng)頁(yè)報(bào)告或PDF模仿商業(yè)BI工具里的“訂閱報(bào)表”功能。做完這個(gè)整個(gè)項(xiàng)目的完整度和商業(yè)味道都會(huì)提升很多?;氐竭@個(gè)題目本身我個(gè)人的體會(huì)是畢設(shè)最重要的不是算法多高深而是鏈路完整、邏輯清楚、能講明白每一個(gè)選擇為什么這么做。基于Spark的零售銷售數(shù)據(jù)分析系統(tǒng)恰好提供了這樣一條完整鏈路——從數(shù)據(jù)接入到ETL從統(tǒng)計(jì)分析到機(jī)器學(xué)習(xí)再到可視化和文檔輸出每一步都是企業(yè)中真實(shí)存在的需求。只要你把每一步做扎實(shí)、把關(guān)鍵決策想明白這個(gè)題目不僅能幫你順利畢業(yè)還會(huì)成為你求職簡(jiǎn)歷里一個(gè)相當(dāng)能打的項(xiàng)目。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产AV高清AV无码| 久久久111| 青青草五月天| 97在线看| 无卡一区=区| 好湿好紧视频| 91人人臊| 91美女視頻| 美女91AV| 农村妇女一级二级三级视频| 少妇天堂| 国产剧情一区在线观看| 亚洲欧美变态| 激情接吻视频久久久久久| 自拍盗摄一区| 伊人国产成人av网站| 亚洲 国产 精品一区| 99999精品成人| 91蜜桃传媒精品久久久一区二区| 欧美顶级黄色大片免费| 中文精品少妇天堂| 99久久久er直播网址| 97一区二区蜜臀| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 欧美色视频在线| 久操B网| 精品人妻高清麻豆av| 亚洲一区二区三区中文字幕| 涩涩久久精品| 久久社区一区二区三区| 色色色色色色色色综合| 17c在线成人免费A片观看| 亚洲人在线| 久久只有精品| 一本大道综合伊人精品热热| 五月天久久综合网| 91精品国产乱码| 久久夜黄色无码A级大片| 97一区二压| 欧美激情性久久久久久| 目产99999久久999| 中国国产精品一区视频| 任你干在线视频| 这里只有精品视频在线观看麻豆| 久久人妻少妇| 国产亚洲在线观看| 亚洲国产美女久久久久| 日日干男人的天堂| 干B| 国内偷自视频区视频综合 | 免费AV播放| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 欧美在线综合| 蜜臀久久99精品久久久久久久久| 三级日本一区二区三区| 91女优在线观看| 亚洲高清国产理伦片| 超碰天天操| 福利伊人玖玖国产| 国产精品诱惑| 97色视频在线| 人妻啊啊人妻啊啊| 一级黄色性爱A级片| 久久久涩| 亚洲熟女乱色一区二区三区久久久 | 99热国产精品| 日本超碰在线国产一区| 亚洲av影音先锋| 男人的天堂免费| 男人的天堂2018.| 欧美五十路熟| 亚洲色婷婷综合久久一区二区三区| 国内91熟女人妻丝袜天天精品视频在线 | 五月天色图影视| 人妻娇喘 激情视频| 夜夜操天| 亚洲成人综合在线| 口爆吞精在线观看| 伊人麻豆传媒| 欧美91在线+|+欧美| 欧美在线播放aaaa| 欧美区亚洲区偷拍区 | 黄片www.| 17c在线成人免费A片观看| 欧美综合自拍亚洲综合图| 久久久久久久久久久97| 日韩欧美午夜视频在线| 欧洲黄色网| 精品白丝一区| 亚州欧美总和| 色欲人妻一区二区在线| 亚洲天堂女优在线| 精品国产一区二区三区av在线资源| 亚洲**2021在线观看| 伦在线97| 日韩精品9999| 在线 亚洲 网爆 自拍| 玖玖爱综合网| 亚洲综合另类欧美久久久| 99久久精品国产高潮| 乱伦强奸区日韩| 日韩大香蕉AV影片| 中文字幕在线第二页| 91 国产丝袜在线放观看| 第一高清av中文字幕| 少妇厨房愉情理伦片bd在线观看| 好吊色综合| 夜色97| 美女主播色欲91抠b在线播放| 强奸乱伦大香蕉| 四虎免费在线观看| 欧美一级在线观看成人| 奶水 人妻 哺乳 在线| 青青草字幕AV| 欧美在线干| 欧美成人综合| 操91| KK色在线影院| 欧洲一区二区| 亚洲色图A| 91激情综合| 久久久久久中文版| 91久久午夜无码鲁丝片久久人妻| 蜜色网色哟哟| 欧美日日网| 亚洲 欧美 另类 日韩 人妻一区| 大香蕉啪啪啪啪在线| 99爱久久视频频| 伊人久久青青草| 国产SV一线| 亚洲美女30b| 麻豆天美传媒在线视频天堂| 999综合色| 澳门人妻久久| 亚洲有码 视频一区| 日韩97视频!在线| 久久精品人体AV| 黑人黄片在线免费观看| 91婷婷| 中文字幕精品资源在线| 人人操人人摸人 | 丁香7月婷婷| 98福利在线视频| 中文字幕AV片| 丝袜美腿操av| 婷婷爽人人婷婷爽视频| 日夜伊人网| 大香蕉欧美| 日本成熟少妇A∨网站| 亚洲精品97| 天天综合亚洲综合| 国产精品点击进入在线影院| 国产精品蜜臀久久久久无码AV| 色狠狠综合噜一二三区| 大香蕉综合| 亚洲天堂第一页| 国产精品一区二区后入| 欧美日韩一二三| www男人天堂| 国产欧美另类久久久精品课程| 老司机香蕉久久久久| sewuyueav| 天美91| 一起草在线视频| 国产免费黄色一级大片| 97天堂| 国内亚洲高清无码| 中文字幕精品资源在线| 久久久999日本大片| 久草色悠悠在线视频| 久久久久久中文字幕中文字幕最新| 天天影视网综合少妇| 青青草原人妻| 欧美日日人人天天| 欧美一区二区男人天堂| A 在线网址| α√在线| 在线啊啊啊啊| 欧美传媒一区| 97超碰香蕉| 黄色成人网久久久久久| 一区三区啪啪| 9 7超碰在线免费观看| 亚洲熟妇综合久久久久久| 婷婷美人网| 欧美性第1页| 欧美在线播放| av婷婷色婷婷色六月| 情色AV电影| 亚洲精品1区| 亚洲第一视频 欧美风情 日韩| 亚洲综合在线第一页| 377p欧洲日本亚洲大胆| 国产精品麻豆成人AV艾秋| 欧美性,色九九| 欧亚韩国999| 亚洲综合电影| 97人人射| 啊啊啊啊啊好舒服视频| 黑人白女精品一区| 91 亚洲 欧洲| 青青草影视蜜久久| 国产老太乱伦一区| 日亚韩精品视频二区三| 伊人网在线观看| 国语精品对白| 顶级丝袜熟女一区二区三区 | 天天射夜夜| 精品视频一二三中文| 精品午夜福利国产一区二区在线观看 | 青青草原综合久久大伊人精品| 夜夜操一区二区| 91在线欧美| 思思热免费视频观看| 99re69| 超碰九7| 亚欧韩av| 亚洲丝袜B诱惑| 91精品人妻一品二品三品| 不卡av在线中文字幕| 混色激情av| 久久激情视频| av无线看| 操人妻逼91| 狠狠爱大香蕉| 久久99操天天日| 亚洲欧美91√| 五月天婷精品激情| 东北操逼| 最新中文字幕精品在线| 加勒比海成人视频网 | 99免费视频| 加勒比综合a∨| 成人av福利在线观看| 天美国产精品| 国产suv一区二区三区6| 婷婷丁香五月综合| 激情在线青青操| 激情久久av一区av二区av| 91麻豆一二三区| 国产一区自拍欧美日韩| 天天干一区二区| 一区二区三区看视频| 日本在线不卡v二区| 六月婷婷一区二区三区| www.91理论| 国产乱子伦一区二区三区免看| 三级日韩一区二区三区| 日韩少妇丰满亚洲| 九九干| 一二三四视频在线社区中文字幕| 日韩欧美午夜视频在线| 亚洲女人毛茸茸91| 操99| 日韩十八禁| 日韩乱码av| 亚洲天堂精品日韩电影| 免费久久9999| 欧美成人AⅤ大片在线观看| 中文字幕超碰CAO| 激情国产乱伦Av| 大乔未久88一区| 久久av成人无码免费| Julia Annxxxxx| 日韩激情啪啪| 97天堂| 蜜色网色哟哟| 性在久久久久久| 欧美色图片欧美色图| 无色无码| 1769一区| 精品人妻一区二区蜜桃视频 | 亚洲色图美腿丝袜| 国产在线能看的你懂的| 91超碰碰在线| 亚欧性爱在线无码| a片自拍直播视频| 97精品一二区| 国人欧美精品一区二区| 超碰美女97| 九久9热| 99久久久无码精品国产人| 欧美最大综合网| 91丨九色丨东北熟女| 97国产精品视频| AV丝袜少妇| 九九aV| 久久超碰国产一区二区三区| 色情婷婷久久五月天| 操高情无码| 日韩情色一区二区| 午夜福利区| 天天干人妇| 色吧 综合| 97超碰色屌| 久久久无码av精| 精…码一二三区| 屌妞视频久久久久久久久久久久| 簧片免费看视频| J?P?NESEHD熟女熟妇伦| 丰满人妻一区二区中文| 真实高潮91| 丰满高潮18xxxx| 日韩小电影| 九九九久久久久| 天天日天天色| 欧美午夜一区二区三区| 美女被啪到深处抽搐视频| 蜜臀aV午夜一区二区三区| 九九九九九九九精品视频| 亚洲 日本 国产 综合| 大茄子熟女AV导航| 亚洲一区亚洲天堂| 中文字幕少妇色| www.久久久久| 2018天天日天天日| 男人的天堂久久久| 超碰 国产熟女精品一区| 放黄片放3级黄片没穿衣服| 夜夜操一区二区| 国产suv精品一区二区四区999| 1024人妻熟女一区二区三区| 日本精品网站在线中文| 99re98| 欧美熟女逼久久久久久| 国产偷仑| 精品国产污一区二区三区| 18禁中文字幕| 婷婷在线视频在线观看| 91无遮挡| 精品黄色电影| 91少妇人妻| 精品一区二区三区蜜桃| 亚洲,欧美,综合网| 美女上床网站| 97欧美久久久久久久| 淫色网综合| 久久久久久久一级黄色打同平台| 九月色婷婷| 久久亚洲av成人无码国产| 欧美成人A天堂片在线观看| 视频国产成人精品日本亚洲18| 天天干18禁| 久草毛片| 亚洲精品电影| 中国和日本人色哪个不下载能放| 久久中文字幕人妻熟av女蜜柚| 18禁久极品美女久久哦哟呀!| 天天综合网国产| 99热这里| 碰碰在线视频| 97蜜桃综合| 91狠婷| 国产人妻天天干精品| 99在线无码精品秘 入口黑人| www.亚洲黄色| 亚洲国产精品99久久久| 亚洲欧美国产成人综合不卡| 熟女突然公开看18禁影片| 亚洲情色中文字幕一区| 精品中文字幕一区二区l - 百度| 日韩无码三级影院| 无码高清专| 天天躁日日躁XXXXYY| 精品在线观看视频在线| 国产成人久久久精品免费AV| 欧美疯狂做爰xxxx| 国产超碰在线| 精品少妇一区二区三区免费观看| 野狼激情网| 美女露胸露尿口| 亚洲男人bt天堂| 亚洲国产欧美日韩人妻日中文| 操狠狠| 顶级少妇BT天堂| 九热大香蕉| 偷拍色图| 屁股久久久久久久久久| 17c在线成人免费A片观看| 欧美激情性爱视频网站| 久久久免费一级黄片| 色啪网| 国产伦精品免编号公布| 成人天天看站长推荐| 97视频在线免费播放| 9久9久9久9久视频网站| 91综合网| 插入逼91| 黄色高清无码无码破解免费暗网| 婷婷91| 天美av在线观看| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 无码乱人伦中文视频| 婷婷久月| aaa淫乱视频| 亚洲。天堂。日本在线观看| 九九操久久国产免费视频| 国产精品人妻无码久久久老鸭窝| 亚洲精品一区二区精品| 97人人草| 久久亚洲熟妇在线视频| 91模特在线观看| 欧美色青| 欧美日本一区二区a人| 人妻少妇久久久| 伊人国产视频| 淫淫综合网| 自拍偷拍亚洲熟女妇人精品 | 欧美性爱一区二区| 亚洲欧美在线观看免费| 91大胆欧美| 色老牛| 超碰97丝袜| 欧美爆操91| 午夜福利合集| 日韩三级伊人| 韩日无码在线观看| 宗合情欲网| 伊人宅男大香蕉| 九九九九热| 亚洲第一在线视频| 亚洲成人妻日韩在线| 综合色好色| 思思热影视| 97人人中文网| 福利视频合集| 男人天堂久久精品| 特色a在线上| 操人91| 97超碰色中文字幕| 老司机老司机午夜影院| 天天日天天屌天天操| 国产女大学生AV| 蜜桃久久一区二区三区| 99re视频在线播放青草| 牛牛aV| 美女诱惑在线一区| 高清国产无码av| 欧美性爱五月天| 久久久九精品| 欧美经典一区二区三区 | 好吊色在线观看| 国产AV线| 中文操嬖片。| 青青草一区二区三区四| 欧美日韩另类在线播放| 性色高清在线| 中文不卡视频| 丁香色五月 97干| WWW美腿丝袜香蕉中文| 91人妻人人澡人人爽人人精品| 97在线精品| 色综九九九一区| 性爱乱伦网址| www.av不卡中文字幕| 婷婷久久五月综合激情| 嗯嗯嗯不要不要免费视频| 97色在线视频| 夜夜操2028| 久9九综合在线| 久久99操天天日| 91美| 天天色综合图片| 校园春色五月天| 欧美日不卡| 中文乱码字幕观看| 久操99| 国产老太乱伦一区| 少妇500双飞99| 襙一襙| 天操天操夜操夜月操月年年操| 亚洲学生妹高清av| 久久深夜无码| 亚洲成人一区二区精品| 99热婷婷一区二区三| 天天综合91在线| 一二三区操逼国产91| 97久久精品国产| 亚洲最新中文字幕免费| 3P丝袜熟女 色综合| 成人综合色网| 激情国产乱伦Av| 91四海无码日韩欧美| 日韩三级一区| 日韩无码精品综合久久| 亚洲精品97p| 人妻天天夜夜爽一区二区| 2019精品国产无码成人| 久久网亚洲| 亚洲综合色男人网| 国产精品久久久久亚洲av| 日韩射图| AV高清一区| 国产女人91精品嗷嗷嗷嗷| 91天天综合日韩欧美| 97视频620| 亚洲欧美激情在线视频| 亚洲欧洲av影音| 欧美日韩97在线| 啊啊啊com| 欧美日韩一区二区三区四区蜜桃| 人人妻人人玩人人澡人人爽| 小骚逼被操的爽不爽| 丁香五月性爱| 岛国网址国产 | 欧美亚洲日韩16色| 九九这里只有精品| 超97在线精品视频| 国产精品久久久| 亚欧美综合网。| 精品久久久久久亚洲| 国产专区第一页| 超碰免费97| 久久久久久99999国产精品| 人妻在线臀日韩| 丁香五月激情综合国产| 九九综合久久中文字幕| 乱伦一二三| 天天综合91入口| 欧美 亚洲 另类 综合| 爽爽歪在线视频| 全球成人中文在线| 岛国网址国产| 国产丝袜欧美在线视频| 国产精品一区二区三区四区五区| 国产精品在线一区二区| 精品国产一区二区三区久久久蜜臀| 亚欧性爱在线无码| 性在久久久久久| 国产精品久久久久久高清无码免费看| 亚洲97精品| 亚洲第一男人天堂| 日本一久是| 精品九九九九九九九| 欧美激情总合网| 美女t无毒不卡不卡| 久久亚码| 熟女一区二区三区| 九九热五区| 中文字幕老熟妇黄色视频| 欧美黄片视频在线观看免费 | 国产精品麻豆成人AV艾秋| 每日更新AV| 精品偷拍13p欧美dodk视频| 18禁在线视频| 无码动漫av中文字幕| 好吊色综合| 九九九精品美女| 另类图片五月天| 风月影院男女十八禁| 96国产污污污丝袜| 久久婷婷欧美| 好舒服视频| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 操b在线观看| 久久久97| 国产强奸乱伦无码视频| 国产在线视频午夜精华在| 免费试看60秒| 偷拍精品一区二区三区| 国产粉嫩蜜臀av一区二区三区| 啊啊啊啊啊好多水| 狠狠婷婷亚洲中文综合久久| 青娱乐二区免费| 国产成久久综合片| 性爱免费视频成人| 一本一道vs波多野结衣| 国产高清成人传媒影视| 婷婷五月天色| 麻豆视频test| 久久神马影院| 亚洲丝袜99| 亚州Av天美传媒| 五月天AV资源| 野狼福利社区| 老司机午夜精品视频| 男女激烈网站最新| 久久久久久国产精品免费网站| 久久精品国产亚洲AV片多多| 日韩在线观看中文字幕视频| 加勒比大香蕉视频在线| 宅男91视频在线播放| 蜜臀久久99精品久久久久免费观| 亚洲自拍欧美国产首页网曝 | 强奸乱伦中文字幕AV| 殴美在线AⅤ| 五月天色图| 天天操天天射青青草| 二级久久网| 97超级色碰碰| 九九九九九精品视频| 成人国产视频在线观看| 操逼天美3区| 欧美亚洲日本激情在线| 精品一区二区3区| 九九拍拍精品视频在线播放| 久操av在线| 男人天堂东京热| 91伊人久| 九九色热| 久久蜜色情在线视频xxx免费观看| 日韩欧美中文字| 啊啊啊啊嗯嗯在线久久久| 超碰欧美| 欧美网站免费| 96AV久久久| 亚洲自拍青操视频| 久久永久无码人妻视频| 国产综合网站在线播放 | 九九九九九九九精品视频| 日本午夜福利视频| 好湿好紧视频| 天天躁日日躁成人字幕aⅴ| 久久久国产成人一区二区三区在线| 久久黄黄| 人妻熟女一区二区| 精品人成视频在线观看| 最近的最新的中文字幕视频| 日本九九久久99播| 亚洲精品蜜桃久久久| 精品久久久久久AV无码| 久久久com| 精品999日本| 9999久久久| 日本道久久综合色色| 91最新综合| 精品国产99999| 亚洲精品天堂久久A∨51成人漫| 香蕉在线一区二区三区| 欧美日韩97在线| 人人操人人色人人摸| 日本狠狠干| 亚洲国产中文字幕| 国产精品ⅴ无码大片在线看.| 大香蕉伊人久久| 岛国999| 欧美一二三级精品在线| 91亚州日韩高清| 欧美 日韩第一性色| 亚洲天堂一区二区久久| 狼人综合婷婷激情四射 | 日本熟妇人妻中出视频| 国产精品网站www| 91熟女视频| 99精品在线观看| 精品人妻视频一区二区在线播放 | 狠狠中文字幕| 麻豆AV一区二区| 欧美综合91| 五月香婷婷| 午夜操操操| 中文字幕123| 久久久久久久久久久久久久久久9| 久热69九色熟妇97| 色婷婷日韩精品一区二区三区| 能在线播放的国产三级| 人人超碰在线观看黄| 色色毛片| 精品人妻一区二区三区-国产精品| 久操免费观看| 九九内射在线| 91爱网| 乱精品一区字幕二区| 天天操妹子| 超碰免费人人| 91女色| 五月综合久久| 久久久久久久性爱| 一道本久久棕合爱| 性色亚洲| 欧美综合97www| 欧美v日韩v亚洲v最新在线| 精品人妻一区二区三区夜夜| 色色五月婷| 人妻日日夜夜精品| 九九热AV| 一区黄二区黄| 人妻色偷色噜| 五月天春色激情网| 超碰精品日韩欧美国产| 中文乱码99| 亚洲成人黄色在线观看| 欧美 日韩 国产传媒| 国产精品久久久久无码Av网曝门| 欧美在线伊人色| 91性高朝久久久久久久久| 啊啊啊啊啊操我视频| 在线毛片片免费观看| 熟女欧美日韩综合婷婷| 成人性爱av.com| 天美麻豆黄色录像| 欧美丰满熟妇XXXX性ppX人交| 综合亚洲网| 综合色图区| av毛片aaaaa免费看| 五月天久久婷婷亚洲| 日韩亚洲中文有码视频| 天天干1区2区在线| 五月天色五月| 日韩综合无码一区久久92| 97色97好| 亞洲久久直播| 男女啊啊啊| 九九九久千久久激情蜜桃在线看 | 精品国产72| 午夜一区二区三区国产| 九九久久国产精品怡红院| 精品一区二区啪啪啪| 性爱网站一区二区| 亚洲午夜蜜臀| 日韩性色b| 涩涩涩综合| 91痴汉| 天天日日舔舔| 91高清无码下载| 91色婷婷综合久久中文字幕二区| 91欧美长吊| 成人三级片无码| 97亚洲欧美| 成人片视频| 亚洲中文字幕97久久精品少妇| 呦呦影院| 91天天综合在线| 99999精品成人| 男人的天堂一区三区| 欧美成人免费在线观看| 免费草草草草草视频| 色综合美国| 在线观看色视频| 亚洲熟妇一,二,三期| 中文一区二区| 99国产在线绯色一区| 激情五月天社区| 先锋影音av先锋一区| 天美传媒麻豆一区二区三区国产精| 校园春色亚洲欧洲| 强奸乱亚洲| 日韩无码精品综合久久| 欧美碰碰综合色| 狠狠躁天天躁日日躁97| 无码91| 99爱爱| yellow网站免费观看日韩高清无码| 日本日皮视频逼| 超清福利精品视频在线| 欧美精品庄| 97久久天天综合色天天综合色电影| 人妻久热在线| 色婷婷丁香五月| 夜间福利片1000无码| 欧美日韩大香蕉| 天久久久噜噜噜久久国产精品爽爽| 啊啊啊啊啊啊啊在线| 熟妇女人妻呻吟久久AV| 99婷婷| 综合久久欧美| 黄色在线网站| 91看黄片| JIZZJIZZ亚洲女人被躁| 亚洲性天堂| 欧美天天影院| 久久久精品视频欧州站| 婷婷另类小说| 欧美少妇第一页| 亚洲精品视频二区| 色婷婷99| 婷婷五月综合在线| 国模少妇一区二区三区| 亚洲最新a在线观看| 91精品女厕偷拍视频| 亚洲欧洲av影音| 人妻精品视频一区二区三区| 91丝袜美女视频| 久久久久女教师免费一区| 久久久久久久久国产| 熟女网站最新| 日韩久久艹| 国产AV人人 夜夜人人澡| 无码欧美有限公司| 超碰国产情侣自拍网| 欧洲综合视频| 久都青青视频| 国产免费大片| 手机不卡视频不卡在线一二三区| 91人妻超碰| 超碰久久中文| 国产性感骚丝袜在线| 厕所偷拍在线| 欧美综合第一| 日本A级视频| 欧亚日韩三区| 精国久久一区二区三区98| 乱久久久| 日韩97视频| 99日视频在线免费| 色原狠狠天天天| 人妻91少妇| 97免费在线观看| 精品无码久久久久久久杏吧| 国语对白露脸XXXXXX| 日韩激情无码影院| 无码人妻精品一区二区中文| 国产人伦a片信息免费片| 五月丁香拍拍激情综合三级| 综合久久六月久久婷婷| 强奸a片网| 91大学精品激情戏| 嗯啊啊啊轻点视频| 夜草欧美| 国产精品高朝久久久久久久| 九九九九九九精品| 欧美日韩1234| 成人av福利在线观看| 久草网站免费在线观看| 熟女人妻一区二区三区| 99激情视频| 一二三啪啪专区| 97bbn| 老熟女综合网| 日产操逼| 日本操逼视频导航| 色五月大香蕉| 欧美色图私拍91| 国产精彩女在线观看视频| 69久久| 人妻少妇久久中文字幕一区二区 麻豆 | 久操精品| 岛国免费黄色网址| 久久精品性| 日韩女优在线| 风骚少妇视频中文字幕| 97超碰欧美手机| 欧美日韩另类在线播放| 国产一区二区啪啪视频| 97AV爱| 欧美一区二区三区黄色影视| 97色操| 国模无码人体一区二区三| 丝袜美腿制服人妻二区中文字幕 | 麻豆AV短剧| AV天黑人| 精品美女久久久久| 国产成人无码久久精品| 亚洲中文字幕乱码无码一区二区| 九99久久| 日本精品一级二级三级| 蜜臀av网址| 欧美色999| 性爱精品一区| 91色图片| 欧美78P| 伦伦成年午夜免费视频| 欧美黑人XXXⅩ高潮交| 日本中文字幕一区| 伊人影院日本| 国产免费一区在线观看| 亚洲熟女乱熟乱熟妇综合网二区| 91制服丝袜| 草草影院日本第一页| 熟女人妻av在线资源,黄色的资源| 东京热不卡视频| 97在线观看| 日本日逼视频网| 77国产精品| 狠狠干91| 欧美丰满熟妇XXXX性ppX人交| 超碰碰97| 九九九精品| 日韩无码专区| 少妇色综合| 欧美性生活男人的天堂| 欧美另类色图片| 91超碰丝袜制服| 欧美性生活免费网| 在线天堂999| 日日操夜夜操天天操免费观看麻豆| 国产综合网站在线播放| 久久久熟妇熟女国产| 日韩无限资源| 丁香色婷婷| 99re在线视频这里只有精品| 香蕉热人人精品| 国产自产91区13区| 亚洲欧美日韩激情不卡| 一区二区三区机械有限公司| 激情婷婷丁香| 精品少妇人妻av久久免费| 欧美亚综合色图| 中文字幕乱码在线| 超碰99在线| 美女91网址| 人妻乱仑一区二区三区| SUV一区二区在线看| 伦激情人妻另类人妻| 天天干一区二区| 性色A∨91| 色色99| 久久久久女教师免费一区 | 超碰97综合网| 久久高清欧美国产| 超碰日韩美妻| 精品人体无圣光凹凸| 中出789在线视频| 久久久精品中文字幕爱豆| 亚洲精品丝袜| 1000部熟女视频在线观看| 午夜激情床戏激情| 亚洲婷婷丁香在线| 九九九九九九亚洲| 精品人妻视频入口| 91殴美大片| A片A5445444| 啊啊啊啊二区好大| 欧美色视频在线| www.男人天堂| 一级特级aaaa毛片免费观看 | 青久久| 丁香婷婷九月| 欧美欧美少妇| 韩国久久97| 中文久久| 狠狠干精品一二三四五六2022| WWW操逼| 超碰97久久国| 亚洲AV永久无码一区仙野| 九九九不卡| 99国产人成精品| 视频一区二区免费在线| 宗合情欲网| 不卡一区二区日本视频| 好一吊区二区| 嗯嗯啊在线视频| 日韩电影在线观看网址| 久久曰曰| 日韩不卡毛片Av免费高清| 婷婷人妻激情| 台欧久久精品视频| 91搞逼视频| 久久久一区二区| www.久久| 蜜乳中文字幕a在线| 日韩少妇在线视频| 毛片电影一区二区三区| 91九九| 2000亚洲男人天堂| 日本午夜久久电影| 欧美亚洲高清| 97 九色| 国产成人久久久精品免费AV| 超碰97亚洲| 国产美女激情| 亚洲色欲天天人妻无码系列专区| 91一区二匹| 最新av在线| 91色久| 色综合国产在线观看| 校园春色宗合网| 丁香五月综合| 亚洲图片激情综合另类| 综合亚洲网| 欧美爆操91| 亚洲欧美激情在线视频| 明星性猛交ⅹxxx乱大交| 中国熟女91| 大香蕉伊利av| 国产福利小视频高清在线观看| 伊人麻豆传媒| 欧日韩在线观看| 欧美男人一区| 天天看天天在线精品| 天天爱天天操| 欧美伊人久久综合网| 熟女少妇一区二区三区| 美骚妇av高清在线| 99热官网| 91社区拍啪人妻| 天天综合-91入口| 日本熟妇精品九九| 真实高潮91| 国产精品老师| 欧美性爱免费短视频| 99夜夜操| 国产丸一视频| 国产嫩草精品A88AV在线| 综合久| 脫衣舞一区二区三区| 日本一区不卡| 久久99久久99精品天美传媒棢·纸:. | 无码WWW免费视频网站| 天堂无码| 欧美日综合| 色大香蕉97N| 天天干天天日天天射黄色| 91干熟女| 懂色av色欲av蜜臀av| 国产强奸无码乱伦| 99热一区二区三区四区| 青青操视频在线| 日韩国产十八禁| 欧美日韩性感| 婷婷伊人綜合中文字幕小说| 亚洲一级特黄大片在线播放91| 亚洲成人激情小说视频| 狠狠入| 97在线亚洲| 91丝袜在线视频| 久久天天躁日日躁狠狠躁 | 亚洲国产成人综合碰碰三级经典| 超碰97资源网亚洲| 91 亚洲情侣偷拍 久久| 青青草吊丝| 天天日老熟妇| 久热婷婷| 日本在线视频导航| 精品亚洲国产成人av网站| 男女猛烈无遮掩视频免费软件| 97干97色| 精品999一区二区| 深喉吞精| 午夜操一视频一区| 麻豆天美AV传媒第一页| 亚洲精品人伦一区二区| 欧洲精品人妻| 激情欧美日韩女同久久| 青青操在线亚洲视频观看欧美在线| 翘臀vidoes| 91亚洲黑人| 亚洲有码 视频一区| 人妻啊啊人妻啊啊| 六月婷婷五月丁香| 婷婷色综合| 五月丁香影视| 淫妻综合网| 日韩精品99999| 综合网欧美在线| 激情文学网伊人| 9久综合网| 伊人影院中文字幕| 欧美不卡在线美女| oumeisetu综合| 91ise欧美| 夜夜夜久久| 精品人妻夜夜草| 欧美熟妇操操视频| 国产亚洲色婷婷99精品91| 欧美中字二区| 色娱乐色呦呦夜夜夜夜av| 97一区二压| 97精品97久久| 91亚.色| 国产农村妇女毛片精品久久| 粉嫩AV一区二区夜夜| 五月天亚洲色图| 人人模人人看| 黄色视频60分钟| 国产欧美岛国精品一区| 免费操逼视频下载| 操操碰| 情色日播放AV| 婷婷情色五月天| 日韩视频小说在线观看 | 日韩精品一区二区日韩| 人摸人人操人| 狼人久草| 美女黄页| 操死我了嗯嗯嗯| 国产中午字一暮区| 色五月av| 亚洲欧洲自拍图片专区满春格| 无码人妻精品一区二区中文| 殴美在线AⅤ| 婷婷九月色| 日日天天久久啊啊aaa| 亚洲一二三| 全国男人天堂网| 操一操摸一摸| 亚洲国产精品无码AV在线| 久久久国产三级黄色片| 99re这里只有精品中心播放 | 人人操肉肉| 九色婷婷| 亚洲人在线成线成人| 亚洲素人网| 伊人九九九| 亚欧免费| 99综合| 96免费视频在线| 日日骚一区二区三区| 翔田千里无码一区| 日韩精品永久在线观看| 老色69| 精品综合久久久久久97| 东京热双插| 日日摸夜夜夜夜爽| 婷婷五月在线视频| 国产成人主播| 午夜欧美精品久久久| 影音先锋新男人| 狠狠综合网| 久久久专区| 久久春色| 日韩三级天堂在线观看| 97视频网站在线观看| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 粉嫩AV一区夜夜嗨| 国产成人精品网站| 日韩乱伦AⅤ| 日韩另类色图| 亚洲 欧美 综合 91| 欧美91在线| 男人的天堂一区三区| 一区麻豆 高清中文字幕| 蜜臀va69| 日韩性爱视频在线免费观看| 天天日天天爽| 91女优在线观看| 久久国产在线一区二区| 色999五月色| 精品二999| TS人妖另类精品视频系列| 国模吧 一区二区三区| 青青草色情网站视频| 天天综合欧美| 亚洲免费人妻在| 老汉网| 成人五月天丁香激情综合| 国产大学生高潮在线播放| 久久久∴| 大JI巴好深好爽又大又粗视频| 色官网在线| 亚洲性猛交| 精品人妻一区二区三区四区石在线| 4tube欧美女厕所| 国产av又色又爽又黄| 区一在线观看| www国产精品| 蜜乳AV色欲AVAV无码| 1二区9| 韩国免费播放一级毛片| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 日本东京热大香蕉a片| 欧美日本成人一区二区| 色综合久久久久| 少好三P| 国产操偷| 午夜毛片高清免费不卡| 国产午夜福利专区综合| 91男女啊啊啊| 九九九九久久久久| 狠狠综合网| 九九热精品视频六| 久久性爱城| 精品欧美日韩在线观看| 久久久亚洲高清不打码| 国产精品。| 无码高清操逼网址| 超碰97玖玖爱| 一道α片欧美| oumeisetupian|