spark之数据源之自动分区推断

在hadoop上创建目录/spark-study/users/gender=male/country=US/users.parquet(并且把文件put上去)

code:

package cn.spark.study.core.mycode_dataFrame;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.DataFrame;
import org.apache.spark.sql.SQLContext;

public class ParquetPartitionDiscovery {
public static void main(String[] args) {
SparkConf conf = new SparkConf()
//.setMaster("local")
.setAppName("ParquetPartitionDiscovery");
JavaSparkContext sc = new JavaSparkContext(conf);
SQLContext sqlContext = new SQLContext(sc);
DataFrame df = sqlContext.read().parquet("hdfs://spark1:9000/spark-study/users/gender=male/country=US/users.parquet");
df.printSchema();
df.show();
}
}

时间: 2024-10-15 07:13:21

spark之数据源之自动分区推断的相关文章

39、Parquet数据源之自动分区推断&合并元数据

一.自动分区推断 1.概述 表分区是一种常见的优化方式,比如Hive中就提供了表分区的特性.在一个分区表中,不同分区的数据通常存储在不同的目录中, 分区列的值通常就包含在了分区目录的目录名中.Spark SQL中的Parquet数据源,支持自动根据目录名推断出分区信息. 例如,如果将人口数据存储在分区表中,并且使用性别和国家作为分区列.那么目录结构可能如下所示: tableName |- gender=male |- country=US ... ... ... |- country=CN ..

为已有表快速创建自动分区和Long类型like 的方法-Oracle 11G

对上一篇文章进行实际的运用.在工作中遇到有一张大表(五千万条数据),在开始的时候忘记了创建自动分区,导致现在使用非常不方便,查询的速度非常的满,所以就准备重新的分区表,最原始方法是先创建新的分区表,然后将数据依次插入到新的表中,但是我们的表的数据比较的大,如果这样做可能导致效率相对较低,经过寻扎发现了上一篇文章,这篇文章有三个方法,第一个就是最原始的方法,我没有进行实验,第二种(交换分区)和第三种的(在线重定义)我都进行了测试,第三种方法,我初以为会比较快速,但是经过测试需要超过2个小时的时间,

C++11新特性:自动类型推断和类型获取

声明:本文是在Alex Allain的文章http://www.cprogramming.com/c++11/c++11-auto-decltype-return-value-after-function.html的基础上写成的. 加入了很多个人的理解,不是翻译. 转载请注明出处 http://blog.csdn.net/srzhz/article/details/7934483 自动类型推断 当编译器能够在一个变量的声明时候就推断出它的类型,那么你就能够用auto关键字来作为他们的类型: [c

磁盘自动分区

#!/bin/bash##########################################Function:    auto fdisk#Usage:       bash auto_fdisk.sh#Author:      Customer service department#Company:     Alibaba Cloud Computing#Version:     2.0######################################### count

MySql自动分区

自动分区需要开启MySql中的事件调度器,可以通过如下命令查看是否开启了调度器 show variables like '%scheduler%'; 如果没开启的话通过如下指令开启 SET GLOBAL event_scheduler = 1; 1.创建一个分区表 CREATE TABLE sales ( id INT AUTO_INCREMENT, amount DOUBLE NOT NULL, createTime DATETIME NOT NULL, PRIMARY KEY(id, cre

Timestamp 与 Date 变量绑定与Oracle的自动分区

好久没有更新博客了,其实是工作中遇到的很多问题在Google上都能找到答案,也就没有记录下来的必要了.今天主要想聊一下在实际的系统中遇到的Oracle数据库的问题,希望对大家有一点点帮助就好. 我首先描述一下我所遇到的场景:我们的数据库用的是Oracle 11g,我想大家立马就对它的自动分区(Interval)有了基本的认识了,这是一个非常棒的功能,免除了在建表时弄一大堆建Range分区的代码,也免除了以后对数据库进行分区扩充的麻烦.当然利用JOB也是可以完成分区扩展的,但是既然Oracle提供

自动分区、格式化、挂载脚本

功能:自动检测是否有尚未分区的数据盘,格式化新的数据盘并自动挂载 解决了什么问题:一键式检测是否有尚未分区的数据盘,并能对其格式化和自动挂载,省去了复杂的命令和步骤 执行方法:以root身份执行命令 wget http://mirrors.linuxeye.com/scripts/auto_fdisk.sh chmod +x auto_fdisk.sh ./auto_fdisk.sh 结果:出现如下即自动分区.格式化.挂载成功: 脚本内容如下: #!/bin/bash # Author: yeh

PC端 Spark 二次开发 自动接收好友请求并同意

本次Spark二次开发是为了客服模块的开发, 能让用户一旦点击该客服则直接自动添加好友,而客服放则需自动添加好友,不同弹出对话框进行同意,这方便的广大客服. 现在废话不多说,直接上代码. package org.jivesoftware.spark.ui; import java.util.ArrayList; import org.jivesoftware.spark.util.log.Log; import org.jivesoftware.spark.util.ModelUtil; imp

Spark SQL数据源

SparkSQL数据源:从各种数据源创建DataFrame 因为 spark sql,dataframe,datasets 都是共用 spark sql 这个库的,三者共享同样的代码优化,生成以及执行流程,所以 sql,dataframe,datasets 的入口都是 sqlContext. 可用于创建 spark dataframe 的数据源有很多: SparkSQL数据源:RDD val sqlContext = new org.apache.spark.sql.SQLContext(sc)