Spark DataFrame简介(二)

Spark DataFrame简介(二)

Spark DataFrame基础操作

 

创建SparkSession和SparkContext

val spark = SparkSession.builder.master("local").getOrCreate()
val sc = spark.sparkContext

 

从数组创建DataFrame

spark.range(1000).toDF("number").show()

 

指定Schema创建DataFrame

val data = Seq(
  Row("A", 10, 112233),
  Row("B", 20, 223311),
  Row("C", 30, 331122))

val schema = StructType(List(
  StructField("name", StringType),
  StructField("age", IntegerType),
  StructField("phone", IntegerType)))

spark.createDataFrame(sc.makeRDD(data), schema).show()

 

 

从JSON文件加载DataFrame

/* data.json
   {"name":"A","age":10,"phone":112233}
   {"name":"B", "age":20,"phone":223311}
   {"name":"C", "age":30,"phone":331122}
 */
spark.read.format("json").load("/Users/tobe/temp2/data.json").show()

 

 

从CSV文件加载DataFrame

/* data.csv
   name,age,phone
   A,10,112233
   B,20,223311
   C,30,331122
 */
spark.read.option("header", true).csv("/Users/tobe/temp2/data.csv").show()

 

 

读取MySQL数据库加载DataFrame

/* data.csv
   name,age,phone
   A,10,112233
   B,20,223311
   C,30,331122
 */
spark.read.option("header", true).csv("/Users/tobe/temp2/data.csv").show()

 

 

RDD转DataFrame

/* data.csv
   name,age,phone
   A,10,112233
   B,20,223311
   C,30,331122
 */
spark.read.option("header", true).csv("/Users/tobe/temp2/data.csv").show()

 

 

创建Timestamp数据

Spark的TimestampType类型与Java的java.sql.Timestamp对应,

/* data.csv
   name,age,phone
   A,10,112233
   B,20,223311
   C,30,331122
 */
spark.read.option("header", true).csv("/Users/tobe/temp2/data.csv").show()

 

 

创建DateType数据

Spark的DateType类型与Java的java.sql.Date对应,

/* data.csv
   name,age,phone
   A,10,112233
   B,20,223311
   C,30,331122
 */
spark.read.option("header", true).csv("/Users/tobe/temp2/data.csv").show()

 

 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119645.html原文链接:https://javaforall.net

(0)
上一篇 2021年11月27日 下午4:00
下一篇 2021年11月27日 下午5:00


相关推荐

  • 5-去掉a标签下划线,禁止a标签的跳转「建议收藏」

    5-去掉a标签下划线,禁止a标签的跳转「建议收藏」1.去下划线:  写样式,a{text-decoration:none;  或在a标签内联里面写style=”text-decoration:none;”;2.禁用a标签跳转:a标签href不跳转禁止跳转当页面中a标签不需要任何跳转时,从原理上来讲,可分如下两种方法:标签属性href,使其指向空或不返回任何内容。如:<ahref=”java…

    2022年6月7日
    34
  • 用python画小熊_portia

    用python画小熊_portiaPortiaPortia WithPortiayo andPorti

    2026年3月17日
    0
  • 设计模式(三)建造者模式Builder(创建型)

    设计模式(三)建造者模式Builder(创建型)设计模式 三 建造者模 Builder http blog csdn net hguisu article details 1 概述在软件开发的过程中 当遇到一个 复杂的对象 的创建工作 该对象由一定各个部分的子对象用一定的算法构成 由于需求的变化 复杂对象的各个部分经常面临剧烈的变化 但将它们组合在一起的算法相对稳定 例子 1 买肯德基

    2026年3月19日
    3
  • 老电脑换Linux系统是否会更快,旧电脑不要装Windows!Bodhi Linux系统,小巧强悍,运行更流畅…

    老电脑换Linux系统是否会更快,旧电脑不要装Windows!Bodhi Linux系统,小巧强悍,运行更流畅…你的旧电脑安装win10还好吗?现在科技发展越来越快,尤其是电脑硬件的更新换代,然而大多数的人都不会因为新产品出来,就将自己才用了两三年的电脑换掉。但是,电脑用久了,终究会变慢,尤其是在Windows系统功能越来愈多,越来越大的情况下,我们还是需要换电脑!不过,你的旧电脑怎么办?卖掉?它的价格分分钟还不如废铁。扔掉?又不太舍得。真是如鸡肋一般,食之无味,弃之可惜!很多人都不知道的是,其实即使是5年…

    2022年6月4日
    109
  • Haar-like特征提取原理

    Haar-like特征提取原理Haar like 是一种非常经典的特征提取算法 尤其是它与 AdaBoost 组合使用时对人脸检测有着不错的效果 虽然只是在当时而言 OpenCV 也对 AdaBoost 与 Haar like 组成的级联人脸检测做了封装 所以一般提及 Haar like 的时候 一般都会和 AdaBoost 级联分类器 人脸检测 积分图等等一同出现 但是 Haar like 本质上只是一种特征提取算法 下面我们只从特征提取的角度聊一聊

    2026年3月18日
    2
  • 用c语言编写银行家算法,C语言实现银行家算法

    用c语言编写银行家算法,C语言实现银行家算法《C语言实现银行家算法》由会员分享,可在线阅读,更多相关《C语言实现银行家算法(8页珍藏版)》请在人人文库网上搜索。1、C语言实现银行家算法(源码、运行结果)一、源码/*银行家算法10-22*/#include/函数声明voidinit(int*pcount,int*scount,intAllocation1010,intNeed1010,intAvailable10);vo…

    2022年7月22日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号