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

pyspark的Mysql写入

Spark是大数据中的数据处理大杀器,凭借快速的处理速度,简易的上手,把MapReduce等传统处理方式甩了几条街不止。Spark支持JavaRPythonR,特别是Python的

Spark是大数据中的数据处理大杀器,凭借快速的处理速度,简易的上手,把MapReduce等传统处理方式甩了几条街不止。Spark支持Java/R/Python/R,特别是Python的Spark编程尤为简单快捷。

但pyspark的数据处理后,需要写入 mysql进行数据落地,如何办?

一.需要提交spark时候,加入mysql-connect jar

bin/spark-submit –master yarn-client –num-executors 5 –executor-cores 20 –executor-memory 20g –jars /usr/hdp/2.4.2.0-258/sqoop/lib/mysql-connector-java.jar /opt/spark-2.1.0-bin-hadoop2.7/dig.py

备注下,执行的python程序次序不能错。不然居然找不到mysql驱动。

二.写入的python程序如下:

df.write.jdbc(url="jdbc:mysql://10.0.0.03:3306/test"
"?user=test&password=test123",
mode="append",
table="test",
properties={"driver": 'com.mysql.jdbc.Driver'})

备注下:

1.df是要写入的数据集,类似于R中的dataframe

2.mode是表明是否追加数据,否则创建新表

3.table指定插入的mysql表

4.url是mysql的链接参数。

三.开始执行

《pyspark的 Mysql写入》
《pyspark的 Mysql写入》 用了6个container,133G内存

《pyspark的 Mysql写入》
《pyspark的 Mysql写入》 感觉不错。很快就执行完毕,然后插入mysql了。

打开mysql,一看记录。傻眼,里面都是乱码。

经过不断摸索,终于搞定。

办法是先创建mysql的表编码类型是 GBK,然后改动PySpark的程序,让用GBK的方式来写入,并且是追加方式。

四.解决的办法

mysql>CREATE TABLE test( ….) ENGINE=InnoDB DEFAULT CHARSET=GBK;

改动pySpark代码:

df.write.jdbc(url="jdbc:mysql://10.0.0.3:3306/test"
"?user=test&password=test123&useUnicode=true&characterEncoding=GBK",
mode="append",
table="test",
properties={"driver": 'com.mysql.jdbc.Driver'})

终于,也就是程序写入和存储都是GBK,问题得解。


推荐阅读
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • Hadoop 2.6 主要由 HDFS 和 YARN 两大部分组成,其中 YARN 包含了运行在 ResourceManager 的 JVM 中的组件以及在 NodeManager 中运行的部分。本文深入探讨了 Hadoop 2.6 日志文件的解析方法,并详细介绍了 MapReduce 日志管理的最佳实践,旨在帮助用户更好地理解和优化日志处理流程,提高系统运维效率。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 在第二课中,我们将深入探讨Scala的面向对象编程核心概念及其在Spark源码中的应用。首先,通过详细的实战案例,全面解析Scala中的类和对象。作为一门纯面向对象的语言,Scala的类设计和对象使用是理解其面向对象特性的关键。此外,我们还将介绍如何通过阅读Spark源码来进一步巩固对这些概念的理解。这不仅有助于提升编程技能,还能为后续的高级应用开发打下坚实的基础。 ... [详细]
  • 字节跳动深圳研发中心安全业务团队正在火热招募人才! ... [详细]
  • HBase客户端Table类中getRpcTimeout方法的应用与编程实例解析 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • sh cca175problem03evolveavroschema.sh ... [详细]
  • hadoop3.1.2 first programdefault wordcount (Mac)
    hadoop3.1.2安装完成后的第一个实操示例程 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
author-avatar
赵丶宇森
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有