热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SparkDataFrame入门教程

介绍DataFrame是Spark推荐的统一结构化数据接口,基于DataFrame快速实现结构化数据的分析,详细使用教程在https:spark.apache.orgdocslat

介绍

DataFrame是Spark推荐的统一结构化数据接口,基于DataFrame快速实现结构化数据的分析,详细使用教程在https://spark.apache.org/docs/latest/sql-programming-guide.html

使用

创建SparkQL的上下文。

from pyspark.sqlimportSQLContext

sqlCOntext= SQLContext(sc)

导入JSON文件数据,DataFrame也支持从RDD、JDBC、Hive等数据源导入数据。

df = sqlContext.read.json(“/tmp/git.json”)

git.json的数据格式类似这样,可以通过git log –pretty=format:'{“commit”:”%H”,”author”:”%an”,”author_email”:”%ae”,”date”:”%ad”}’ > git.json来生成。

{“commit”:”fbbf4b22db7857f11018f0153472d909af874c31″,”author”:”tobe”,”author_email”:”tobeg3oogle@gmail.com”,”date”:”Fri Jan 1 09:47:31 2016 +0800″}

{“commit”:”22ef72a98c9dfe2f63db9cf34c635124b2d61676″,”author”:”tobe”,”author_email”:”tobeg3oogle@gmail.com”,”date”:”Wed Dec 30 15:04:16 2015 +0800″}

{“commit”:”1c6f4826526149d1df4d6f49c4cd54def5c09ec0″,”author”:”tobe”,”author_email”:”tobeg3oogle@gmail.com”,”date”:”Wed Dec 30 14:59:18 2015 +0800″}

{“commit”:”56b4161ff9913033fe0dcdf291eca9ec0a6a9cc5″,”author”:”tobe”,”author_email”:”tobeg3oogle@gmail.com”,”date”:”Wed Dec 30 09:19:56 2015 +0800″}

{“commit”:”0c8c9b065ad381362cbe6726df09b939796175ae”,”author”:”tobe”,”author_email”:”tobeg3oogle@gmail.com”,”date”:”Tue Dec 29 15:10:43 2015 +0800″}

{“commit”:”b4e784bf78a83a922cff31de239c21b168bc7809″,”author”:”tobe”,”author_email”:”tobeg3oogle@gmail.com”,”date”:”Tue Dec 29 15:09:58 2015 +0800″}

{“commit”:”2e02e17465c2594defb81c439bffe3a3a63ddf92″,”author”:”tobe”,”author_email”:”tobeg3oogle@gmail.com”,”date”:”Mon Dec 28 20:12:24 2015 +0800″}

{“commit”:”185507c50f91a32172a106dd2d1b2fba5cab129c”,”author”:”tobe”,”author_email”:”tobeg3oogle@gmail.com”,”date”:”Sun Nov 29 22:47:18 2015 +0800″}

{“commit”:”512761a255619d6dc81c4ba2d892d397b390b978″,”author”:”tobe”,”author_email”:”tobeg3oogle@gmail.com”,”date”:”Sun Nov 29 21:59:29 2015 +0800″}

基本操作。

df.show()

df.printSchema()

df.select(“author”).show()

df.filter(df[‘author’] !=”tobe”).show()

df.groupBy(“author”).count().show()

执行SQL命令。

df.registerTempTable(“git”)

df = sqlContext.sql(“SELECT * FROM git”).show()

通过代码创建DataFrame。

anotherPeopleRDD = sc.parallelize([‘{“name”:”Yin”,”address”:{“city”:”Columbus”,”state”:”Ohio”}}’])

anotherPeople = sqlContext.jsonRDD(anotherPeopleRDD)

准备MySQL数据库。

apt-get install -y libmysql-java

mysql -uroot -p

create database spark_db;

use spark_db;

create table spark_table (name varchar(20), ageint(32));

insert into spark_table values (“tobe”,18);

insert into spark_table values (“john”,28);

连接MySQL。

SPARK_CLASSPATH=/usr/share/java/mysql-connector-java.jar ./pyspark

from pyspark.sqlimportSQLContext

sqlCOntext= SQLContext(sc)

dataframe_mysql = sqlContext.read.format(“jdbc”).options(url=”jdbc:mysql://127.0.0.1:3306/spark_db”, driver=”com.mysql.jdbc.Driver”, dbtable=”spark_table”, user=”root”, password=”root”).load()

dataframe_mysql.show()


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 标题: ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了StartingzookeeperFAILEDTOSTART相关的知识,希望对你有一定的参考价值。下载路径:https://ar ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
author-avatar
x08308926
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有