Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >创建DataFrame

创建DataFrame

作者头像
编程那点事
发布于 2023-02-25 07:50:26
发布于 2023-02-25 07:50:26
52900
代码可运行
举报
文章被收录于专栏:java编程那点事java编程那点事
运行总次数:0
代码可运行

Java版本:

JavaSparkContext sc = ...;

SQLContext sqlContext = new SQLContext(sc);

DataFrame df = sqlContext.read().json("hdfs://spark1:9000/students.json");

df.show();

Scala版本:

val sc: SparkContext = ...

val sqlContext = new SQLContext(sc)

val df = sqlContext.read.json("hdfs://spark1:9000/students.json")

df.show()

案例 json数据源

{"id":1, "name":"leo", "age":18}

{"id":2, "name":"jack", "age":19}

{"id":3, "name":"marry", "age":17}

Java版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class DataFrameCreate {public static void main(String[] args) {
​​SparkConf conf = newSparkConf().setAppName("DataFrameCreate").setMaster("local");
​​JavaSparkContext sc = new JavaSparkContext(conf);
​​SQLContext sqlContext = new SQLContext(sc);
​​DataFrame df = sqlContext.read().json("C:\\Users\\zhang\\Desktop\\students.json")      
​​df.show();}
}

运行到linux集群上面

  1. 打包 文件路径改成hdfs://spark1:9000/students.json

Sh文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spark-submit \

--class sql.DataFrameCreate \

--num-executors 3 \

--driver-memory 100m \

--executor-memory 100m \

--executor-cores 3 \

--files /usr/local/hive/conf/hive-site.xml \

--driver-class-path /usr/local/hive/lib/mysql-connector-java-5.1.17.jar \

/sql/worldcount.jar \

Scala版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
object DataFrameCreate {

def main(args: Array[String]){

val conf = new SparkConf().setAppName("DataFrameCreate")

val sc = new SparkContext(conf)

val sqlContext = new SQLContext(sc)

val df = sqlContext.read.json("hdfs://spark1:9000/students.json")

df.show()

}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-02-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据源Parquet之使用编程方式加载数据
Parquet是面向分析型业务的列式存储格式,由Twitter和Cloudera合作开发,2015年5月从Apache的孵化器里毕业成为Apache顶级项目,最新的版本是1.8.0。
编程那点事
2023/02/25
3140
JSON综合性复杂案例
查询成绩为80分以上的学生的基本信息与成绩信息 Student.json {"name":"Leo", "score":85} {"name":"Marry", "score":99} {"name":"Jack", "score":74}
编程那点事
2023/02/25
5340
通用的load和save操作
对于Spark SQL的DataFrame来说,无论是从什么数据源创建出来的DataFrame,都有一些共同的load和save操作。load操作主要用于加载数据,创建出DataFrame;save操作,主要用于将DataFrame中的数据保存到文件中。
编程那点事
2023/02/25
3270
大数据随记 —— DataFrame 的创建与 Maven 配置
Spark 应用程序使用 SQLContext,可以通过 RDD、Hive 表、JSON 格式数据创建 DataFrame。
繁依Fanyi
2023/05/07
2450
大数据随记 —— DataFrame 的创建与 Maven 配置
大数据随记 —— DataFrame 数据操作
DataFrame 数据操作有两种操作数据的方式,一种是使用 DataFrame所支持的 SQL 语法进行数据操作,另一种使用 DataFrame 提供的相关 API 对数据进行操作。
繁依Fanyi
2023/05/07
3370
大数据随记 —— DataFrame 数据操作
Spark——底层操作RDD,基于内存处理数据的计算引擎
Apache Spark是一个快速的通用集群计算框架 / 殷勤。它提供Java,Scala,Python和R中的高级API,以及支持常规执行图的优化引擎。它还支持一组丰富的更高级别的工具,包括Spark SQL用于SQL和结构化数据的处理,MLlib机器学习,GraphX用于图形处理和Spark Streaming. 。 作为Apache的顶级项目之一, 它的官网为 http://spark.apache.org
时间静止不是简史
2020/07/27
2.5K0
Spark——底层操作RDD,基于内存处理数据的计算引擎
Spark SQL 快速入门系列(2) | SparkSession与DataFrame的简单介绍
  在老的版本中,SparkSQL 提供两种 SQL 查询起始点:一个叫SQLContext,用于Spark 自己提供的 SQL 查询;一个叫 HiveContext,用于连接 Hive 的查询。
不温卜火
2020/10/28
2.3K0
Spark SQL 快速入门系列(2) | SparkSession与DataFrame的简单介绍
【Spark篇】---SparkSQL初始和创建DataFrame的几种方式
          Hive是Shark的前身,Shark是SparkSQL的前身,SparkSQL产生的根本原因是其完全脱离了Hive的限制。
LhWorld哥陪你聊算法
2018/09/13
2.7K0
【Spark篇】---SparkSQL初始和创建DataFrame的几种方式
手动指定数据源类型
也可以手动指定用来操作的数据源类型。数据源通常需要使用其全限定名来指定,比如parquet是org.apache.spark.sql.parquet。但是Spark SQL内置了一些数据源类型,比如json,parquet,jdbc等等。实际上,通过这个功能,就可以在不同类型的数据源之间进行转换了。比如将json文件中的数据保存到parquet文件中。默认情况下,如果不指定数据源类型,那么就是parquet。
编程那点事
2023/02/25
2840
【Spark篇】---SparkSQL中自定义UDF和UDAF,开窗函数的应用
SparkSQL中的UDF相当于是1进1出,UDAF相当于是多进一出,类似于聚合函数。
LhWorld哥陪你聊算法
2018/09/13
1.7K0
【Spark篇】---SparkSQL中自定义UDF和UDAF,开窗函数的应用
2.sparkSQL--DataFrames与RDDs的相互转换
    当已知类的Schema的时候,使用这种基于反射的方法会让代码更加简洁而且效果也很好。
intsmaze-刘洋
2018/08/29
4350
2.sparkSQL--DataFrames与RDDs的相互转换
Spark(1.6.1) Sql 编程指南+实战案例分析
首先看看从官网学习后总结的一个思维导图 概述(Overview) Spark SQL是Spark的一个模块,用于结构化数据处理。它提供了一个编程的抽象被称为DataFrames,也可以作为分布式SQ
汤高
2018/01/11
2.5K0
Spark(1.6.1) Sql 编程指南+实战案例分析
Action操作开发实战
1.Reduce 2.collect 3.count 4.take 5.saveAsTextTile 6.countByKey 7.foreach
编程那点事
2023/02/25
2440
《SparkSql使用教程》--- 大数据系列
在Spark中,DataFrame是一种以RDD为基础的分布式数据据集,类似于传统数据库听二维表格,DataFrame带有Schema元信息,即DataFrame所表示的二维表数据集的每一列都带有名称和类型。
用户3467126
2019/07/03
9920
JDBC数据源实战
测试: Use testdb; Show tables; Select * from good_student_infos;
编程那点事
2023/02/25
4040
【Spark篇】---SparkSQL on Hive的配置和使用
Spark on Hive: Hive只作为储存角色,Spark负责sql解析优化,执行。
LhWorld哥陪你聊算法
2018/09/13
4.6K0
【Spark篇】---SparkSQL on Hive的配置和使用
自动分区推断
表分区是一种常见的优化方式,比如Hive中就提供了表分区的特性。在一个分区表中,不同分区的数据通常存储在不同的目录中,分区列的值通常就包含在了分区目录的目录名中。Spark SQL中的Parquet数据源,支持自动根据目录名推断出分区信息。例如,如果将人口数据存储在分区表中,并且使用性别和国家作为分区列。那么目录结构可能如下所示: tableName |- gender=male |- country=US ... ... ... |- country=CN ... |- gender=female |- country=US ... |- country=CH ... 如果将/tableName传入SQLContext.read.parquet()或者SQLContext.read.load()方法,那么Spark SQL就会自动根据目录结构,推断出分区信息,是gender和country。即使数据文件中只包含了两列值,name和age,但是Spark SQL返回的DataFrame,调用printSchema()方法时,会打印出四个列的值:name,age,country,gender。这就是自动分区推断的功能。 此外,分区列的数据类型,也是自动被推断出来的。目前,Spark SQL仅支持自动推断出数字类型和字符串类型。有时,用户也许不希望Spark SQL自动推断分区列的数据类型。此时只要设置一个配置即可, spark.sql.sources.partitionColumnTypeInference.enabled,默认为true,即自动推断分区列的类型,设置为false,即不会自动推断类型。禁止自动推断分区列的类型时,所有分区列的类型,就统一默认都是String。 案例:自动推断用户数据的性别和国家
编程那点事
2023/02/25
4660
Save Mode
Spark SQL对于save操作,提供了不同的save mode。主要用来处理,当目标位置,已经有数据时,应该如何处理。而且save操作并不会执行锁操作,并且不是原子的,因此是有一定风险出现脏数据的。
编程那点事
2023/02/25
8850
Save Mode
Spark笔记12-DataFrame创建、保存
DataFrame可以翻译成数据框,让Spark具备了处理大规模结构化数据的能力。
皮大大
2021/03/02
1.1K0
dataframe去除null、NaN和空字符串
去除 dataframe 中的 null 、 NaN 有方法 drop ,用 dataframe.na 找出带有 null、 NaN 的行,用 drop 删除行:
机器学习和大数据挖掘
2019/07/02
2.9K0
相关推荐
数据源Parquet之使用编程方式加载数据
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验