spark搭建和使用,处理massive文件
生活随笔
收集整理的這篇文章主要介紹了
spark搭建和使用,处理massive文件
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1. 本地安裝spark
- 1.1 安裝Anaconda
- 1.2 安裝JDK 1.8
- 1.3 安裝spark
- 1.3.1 安裝spark for hadoop版本
- 1.3.2 添加環(huán)境變量
- 1.4 安裝hadoop
- 1.4.1 下載hadoop
- 1.4.2 配置環(huán)境變量
- 1.4.3 添加winutils.exe補(bǔ)丁
- 1.5 安裝pyspark
- 1.6 使用
- 1.6.1 創(chuàng)建sparkContext,注意pycharm使用配置HADOOP_HOME
- 1.6.2 textfile方式讀取json文件,這種方式都是字符串
- 1.6.2 spark.read方式讀取json文件,讀取出來之后都是dataframe
- 1.6.3 接口熟悉:
面對(duì)千萬數(shù)量級(jí)以上50G以上的數(shù)據(jù)處理,pandas處理數(shù)據(jù)需要使用chunk分塊方式(內(nèi)存不夠),使用時(shí)間換空間。
1. 本地安裝spark
我們采用local方式安裝spark,集群方式下次介紹。
1.1 安裝Anaconda
略
1.2 安裝JDK 1.8
略
1.3 安裝spark
1.3.1 安裝spark for hadoop版本
下載pre-bulit for hadoop版本
1.3.2 添加環(huán)境變量
略
1.4 安裝hadoop
1.4.1 下載hadoop
https://archive.apache.org/dist/hadoop/common/
1.4.2 配置環(huán)境變量
略
1.4.3 添加winutils.exe補(bǔ)丁
https://github.com/steveloughran/winutils
將下載好winutils.exe后,將這個(gè)文件放入到Hadoop的bin目錄下
給權(quán)限,貌似非必要,必要的 話也不是/tmp/Hive:
1.5 安裝pyspark
pip install pyspark1.6 使用
1.6.1 創(chuàng)建sparkContext,注意pycharm使用配置HADOOP_HOME
from pyspark.sql import SparkSession import os os.environ['HADOOP_HOME'] = "C:\\hadoop-2.7.1" print(os.environ['HADOOP_HOME']) spark = SparkSession.builder.config("spark.sql.warehouse.dir","file:///E:/temp").appName("rdd_test").getOrCreate() spark.conf.set("spark.executor.memory", "14g") sc = spark.sparkContext1.6.2 textfile方式讀取json文件,這種方式都是字符串
raw_data = sc.textFile("file:///F:/employees_singleLine.json") dataset = raw_data.map(lambda line: json_loads_and_extraction(line))def json_loads_and_extraction(line):line = json.loads(line)....下面是提取操作1.6.2 spark.read方式讀取json文件,讀取出來之后都是dataframe
json文件:每一行都是一個(gè)json對(duì)象
df = spark.read.json("file:///F:/employees_singleLine.json")1.6.3 接口熟悉:
https://nbviewer.jupyter.org/github/jkthompson/pyspark-pictures/blob/master/pyspark-pictures.ipynb
https://nbviewer.jupyter.org/github/jkthompson/pyspark-pictures/blob/master/pyspark-pictures-dataframes.ipynb
總結(jié)
以上是生活随笔為你收集整理的spark搭建和使用,处理massive文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mongodb实现多表join
- 下一篇: 50-100G大文件的处理办法