SqlContext

spark小文件合并

点点圈 提交于 2021-02-14 08:58:09
package spark99 import java.io.IOException import org.apache.hadoop.fs.{FileSystem, Path} import org.apache.log4j.Logger import org.apache.spark.sql.hive.HiveContext import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.sql.{SQLContext, SaveMode} /** * Created by hadoop on 下午11:54. */ object FilesManage { def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local[2]").setAppName("mergefile") val sc = new SparkContext(sparkConf) val sqlContext = new HiveContext(sc) val logger = Logger.getLogger("org") val fileSystem = FileSystem.get(sc

Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permissio...

眉间皱痕 提交于 2020-12-19 07:48:24
保存文件时权限被拒绝 曾经踩过的坑: 保存结果到hdfs上没有写的权限 通过修改权限将文件写入到指定的目录下 * * * $HADOOP_HOME/bin/hdfs dfs -chmod 777 /user * * * Exception in thread "main" org.apache.hadoop.security.AccessControlException: * Permission denied: user=Mypc, access=WRITE, * inode="/":fan:supergroup:drwxr-xr-x package cn.spark.study.sql; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.sql.DataFrame; import org.apache.spark.sql.SQLContext; import org.apache.spark.sql.SaveMode; /** * SaveModel示例 * * @author 张运涛 * */ public class SaveModeTest { @SuppressWarnings(

来看看基于Kubernetes的Spark部署完全指南

冷暖自知 提交于 2020-08-06 21:24:15
本文是在Kubernets上搭建Spark集群的操作指南,同时提供了Spark测试任务及相关的测试数据,通过阅读本文,你可以实践从制作Spark镜像、搭建Spark容器集群,到在集群上运行测试任务的完整流程。 Yarn曾经是Hadoop默认的资源编排管理平台。但最近情况有所变化,特别是对于Hadoop中的Spark,由于其与S3等其他存储平台集成得很好,而与Hadoop生态中其他组件反而没有太紧密的关联,因此Kubernetes正迅速替代Yarn,成为基于对象存储的Spark系统的默认编排管理平台。在这篇文章中,我们将深入研究如何在Kubernetes集群上构建和部署Spark容器。由于Spark的运行依赖于数据,我们将配置Spark集群通过S3 API进行存储操作。 构建Spark容器 在Kubernetes上部署应用的第一步,是创建容器。虽然有些项目会提供官方的容器镜像,但截止到写此文时,Apache Spark并没有提供官方镜像。因此我们将自己创建Spark容器,让我们从Dockerfile开始。 FROM java:openjdk-8-jdk ENV hadoop_ver 2.8.2 ENV spark_ver 2.4.4 RUN mkdir -p /opt && \ cd /opt && \ curl http://archive.apache.org/dist

Spark SQL的整体实现逻辑

泪湿孤枕 提交于 2020-05-08 07:13:54
1、sql语句的模块解析 当我们写一个查询语句时,一般包含三个部分,select部分,from数据源部分,where限制条件部分,这三部分的内容在sql中有专门的名称: 当我们写sql时,如上图所示,在进行逻辑解析时会把sql分成三个部分,project,DataSource,Filter模块,当生成执行部分时又把他们称为:Result模块、 DataSource模块和Opertion模块。 那么在关系数据库中,当我们写完一个查询语句进行执行时,发生的过程如下图所示: 整个执行流程是:query -> Parse -> Bind -> Optimize -> Execute 1、写完sql查询语句,sql的查询引擎首先把我们的查询语句进行解析,也就是Parse过程,解析的过程是把我们写的查询语句进行分割,把project,DataSource和Filter三个部分解析出来从而形成一个逻辑解析tree,在解析的过程中还会检查我们的sql语法是否有错误,比如缺少指标字段、数据库中不包含这张数据表等。当发现有错误时立即停止解析,并报错。当顺利完成解析时,会进入到Bind过程。 2、Bind过程,通过单词我们可看出,这个过程是一个绑定的过程。为什么需要绑定过程?这个问题需要我们从软件实现的角度去思考,如果让我们来实现这个sql查询引擎,我们应该怎么做

spark教程(八)-SparkSession

爷,独闯天下 提交于 2020-05-06 01:27:50
spark 有三大引擎,spark core、sparkSQL、sparkStreaming, spark core 的关键抽象是 SparkContext、RDD; SparkSQL 的关键抽象是 SparkSession、DataFrame; sparkStreaming 的关键抽象是 StreamingContext、DStream SparkSession 是 spark2.0 引入的概念,主要用在 sparkSQL 中,当然也可以用在其他场合,他可以代替 SparkContext; SparkSession 其实是封装了 SQLContext 和 HiveContext SQLContext 它是 sparkSQL 的入口点,sparkSQL 的应用必须创建一个 SQLContext 或者 HiveContext 的类实例 from pyspark import SparkContext, SparkConf from pyspark.sql import SparkSession, SQLContext, HiveContext conf = SparkConf().setAppName( ' test ' ).setMaster( ' yarn ' ) sc = SparkContext(conf= conf) sqlc = SQLContext(sc) print

Spark 学习(八) SparkSQL简介

♀尐吖头ヾ 提交于 2020-05-06 00:29:01
一,Spark SQL概述   1.1 什么是Spark SQL   1.2 为什么学Spark SQL 二,DataFrames   2.1 什么是DataFrames   2.2 创建DataFrames 三,DataFrame常用操作   3.1 DSL风格语法   3.2 SQL风格语法 四,SparkSQL编程实例   4.1 前期准备   4.2 通过反射推断Schema   4.3 通过StructType直接指定Schema   4.4 操作DataFrameAPI的形式进行数据操作    4.5 Spark2.X的sql实现方式   4.6 SparkDataSet 正文 一,Spark SQL概述   1.1 什么是Spark SQL         Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。   1.2 为什么学Spark SQL   我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduce的程序的复杂性,由于MapReduce这种计算模型执行效率比较慢。所有Spark SQL的应运而生,它是将Spark SQL转换成RDD,然后提交到集群执行,执行效率非常快!    1.易整合       2

spark记录(13)SparkSQL

人走茶凉 提交于 2020-04-29 14:46:37
1.Shark Shark是基于Spark计算框架之上且兼容Hive语法的SQL执行引擎,由于底层的计算采用了Spark,性能比MapReduce的Hive普遍快2倍以上,当数据全部load在内存的话,将快10倍以上,因此Shark可以作为交互式查询应用服务来使用。除了基于Spark的特性外,Shark是完全兼容Hive的语法,表结构以及UDF函数等,已有的HiveSql可以直接进行迁移至Shark上Shark底层依赖于Hive的解析器,查询优化器,但正是由于SHark的整体设计架构对Hive的依赖性太强,难以支持其长远发展,比如不能和Spark的其他组件进行很好的集成,无法满足Spark的一栈式解决大数据处理的需求。 2.SparkSQL 1.SparkSQL介绍 Hive是Shark的前身,Shark是SparkSQL的前身,SparkSQL产生的根本原因是其完全脱离了Hive的限制。 SparkSQL支持查询原生的RDD。 RDD是Spark平台的核心概念,是Spark能够高效的处理大数据的各种场景的基础。 能够在Scala中写SQL语句。支持简单的SQL语法检查,能够在Scala中写Hive语句访问Hive数据,并将结果取回作为RDD使用。 2.Spark on Hive和Hive on Spark Spark on Hive: Hive只作为储存角色

PySpark SQL 基本操作

血红的双手。 提交于 2020-04-14 11:58:35
【推荐阅读】微服务还能火多久?>>> 记录备忘: 转自: https://www.jianshu.com/p/177cbcb1cb6f 数据拉取 加载包: from __future__ import print_function import pandas as pd from pyspark.sql import HiveContext from pyspark import SparkContext,SparkConf from sqlalchemy import create_engine import datetime import pyspark.sql.functions as F conf = SparkConf().setAppName("abc") sc = SparkContext(conf=conf) hiveCtx = HiveContext(sc) # 创建dataframe d = [{'name': 'Alice', 'age': 1},{'name': 'Bob', 'age': 5}] df = sqlContext.createDataFrame(d) df.show() sql = "" # 拉数SQL df = hiveCtx.sql(sql)    数据探索 df.show() # 不加参数默认展示前20行 df.count() df

pyspark 调 mysql jdbc读取了参数出来,待续

会有一股神秘感。 提交于 2020-02-26 13:56:26
#!/usr/bin/python # -*- coding: utf-8 -*- from __future__ import print_function from pyspark.sql import SparkSession from pyspark.sql import SQLContext import os, time,sys def main(argv): print(argv[1]) print(argv[2]) print(argv[3]) spark = SparkSession.builder\ .appName("test")\ .master("local")\ .getOrCreate() sc = spark.sparkContext sqlContext=SQLContext(sc) jdbcDf=sqlContext.read.format("jdbc").options(url="jdbc:mysql://ip:3306/test",\ driver="com.mysql.jdbc.Driver",\ dbtable="(SELECT * FROM test LIMIT 5) tmp",\ user="test",password="1111123").load() #print(jdbcDf.select('job_name').show(2

基于 Spark 的数据分析实践

你说的曾经没有我的故事 提交于 2019-11-29 23:23:32
转载本文需注明出处:微信公众号EAWorld,违者必究。 引言: Spark是在借鉴了MapReduce之上发展而来的,继承了其分布式并行计算的优点并改进了MapReduce明显的缺陷。Spark主要包含了Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX等组件。 本文主要分析了 Spark RDD 以及 RDD 作为开发的不足之处,介绍了 SparkSQL 对已有的常见数据系统的操作方法,以及重点介绍了普元在众多数据开发项目中总结的基于 SparkSQL Flow 开发框架。 目录: 一、Spark RDD 二、基于Spark RDD数据开发的不足 三、SparkSQL 四、SparkSQL Flow 一、Spark RDD RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、元素可并行计算的集合。 RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。 //Scala 在内存中使用列表创建 val lines = List(“A”, “B”, “C”, “D” …) val rdd:RDD = sc.parallelize(lines); //以文本文件创建 val rdd:RDD[String] = sc.textFile(