通过 --py-files 可以在pyspark中可以顺利导入
文件import问题
问题: 在脚本中import了其他文件, pyspark中可以运行, 但是在spark-submit中总是失败
假定我们的任务脚本为 app.py , 大体代码像这样:
from pyspark import SparkContext ## 加载通用脚本 import common # # ......... # if __name__ == "__main__": sc = SparkContext(appName="ACoolApp") # # run #
公用函数的放到了 common.py 文件中. 通过 --py-files 可以在pyspark中可以顺利导入:
# success pyspark --py-files lib/common.py > import common
而使用spark-submit来提交 app.py 2881064151总是失败
# import error spark-submit --py-files lib/common.py app.py
找了好久的解决办法, 最后参考了 这里 . 简单来说, 所有的import操作必须在context完成之后. pyspark之所以不报错就是因为context已经初始化好了. 所以我们简单改下 app.py 中import的位置就可以了:
if __name__ == "__main__": sc = SparkContext(appName="ACoolApp") import common
数据保存至mysql中
问题: 将数据写入mysql
这里不多说, 方法可以直接参考 这里 . 关键点有两个:
引入mysql的jdbc jar包 设置好对应的的driver, 否则会报 park python java.sql.SQLException: No suitable driver 的错误
直接来个代码片段:
url = 'jdbc:mysql://%s/%s' % (db_host, db_name) properties = { 'user': db_username, 'password': db_password, 'driver': 'com.mysql.jdbc.Driver', } records.write.jdbc(url=url, table=db_table, mode='append', properties=properties)
最后
通过 --py-files 可以在pyspark中可以顺利导入的更多相关文章
- pyspark 中启动 jupyter notebook
还是打算选择python学习spark编程 因为java写函数式比较复杂,scala学习曲线比较陡峭,而且sbt和eclipse和maven的结合实在是让人崩溃,经常找不到主类去执行 python以前 ...
- [Python]将Excel文件中的数据导入MySQL
Github Link 需求 现有2000+文件夹,每个文件夹下有若干excel文件,现在要将这些excel文件中的数据导入mysql. 每个excel文件的第一行是无效数据. 除了excel文件中已 ...
- 如何使用免费控件将Word表格中的数据导入到Excel中
我通常使用MS Excel来存储和处理大量数据,但有时候经常会碰到一个问题—我需要的数据存储在word表格中,而不是在Excel中,这样处理起来非常麻烦,尤其是在数据比较庞大的时候, 这时我迫切地需要 ...
- python中根据字符串导入模块module
python中根据字符串导入模块module 需要导入importlib,使用其中的import_module方法 import importlib modname = 'datetime' date ...
- Altium中Logo的导入方法及大小调整
Altium中Logo的导入方法及大小调整 LOGO识别性是企业标志的重要功能之一,特点鲜明.容易辨认,很多客户需要在PCB设计阶段导入LOGO标示归属特性.如果LOGO是CAD图纸,可以直接按照 ...
- Python中的相对导入语法
Python中支持相对导入语法,即可以相对于某一个package进行导入,具体语法如下: # 导入"./dir2/spam.py", .表示当前目录 from .dir2 impo ...
- 如何将redis中的数据导入到本地MongoDB和MySQL数据库
将redis中的数据导入到本地MongoDB数据库 创建一个process_items_mongodb.py文件(文件名自定义): #!/usr/bin/env python # -*- coding ...
- 详解Python中的相对导入和绝对导入
Python 相对导入与绝对导入,这两个概念是相对于包内导入而言的.包内导入即是包内的模块导入包内部的模块. Python import 的搜索路径 在当前目录下搜索该模块 在环境变量 PYTHONP ...
- python中的绝对导入与相对导入,from __future__ import absolute_import的区别
相对导入:在不指明 package 名的情况下导入自己这个 package 的模块,比如一个 package 下有 a.py 和 b.py 两个文件,在 a.py 里 from . import b ...
随机推荐
- Mongdb使用客户端
安装Robomongo图形化管理工具 Robomongo是一个基于 Shell 的跨平台开源 MongoDB 管理工具.嵌入了 JavaScript 引擎和 MongoDB mogo . 只要你会使用 ...
- uva624 01背包要求输出路径
You have a long drive by car ahead. You have a tape recorder, but unfortunately your best music is o ...
- Xamarin Android教程Android基本知识版本介绍与系统介绍
Xamarin Android教程Android基本知识版本介绍与系统介绍 Xamarin Android教程Android基本知识版本介绍与系统介绍,开发Andriod有时候不像iOS一样轻松,因为 ...
- 20145223《Java程序程序设计》实验一实验报告
实验一 Java开发环境的熟悉(Windows + IDE) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDE 编辑.编译.运行.调试Java程序. 实验步骤 (一)命令行下Ja ...
- Delphi中Messagedlg用法
if MessageDlg('Welcome to my Delphi application. Exit now?', mtConfirmation, [mbYes, mbNo], 0) = mrY ...
- 我的c++学习(8)运算符重载和友元
运算符的重载,实际是一种特殊的函数重载,必须定义一个函数,并告诉C++编译器,当遇到该运算符时就调用此函数来行使运算符功能.这个函数叫做运算符重载函数(常为类的成员函数). 方法与解释 ◆ 1.定义运 ...
- 获取datable中某行某列的数据
假设该DataTable有5行和两个字段“Name”,“Phone”, 我如何访问第3行的“Phone”字段的值. DataTable.Rows[2][1].ToString() DataTable. ...
- [bzoj3813]奇数园
仿佛现在已经完成了做题之前先开个坑的习惯,也许是为了逼迫自己去刷一些神题吧...然并卵,该剩的好多坑还是剩着呢. [bzoj3813]一道线段树好题.已经把数论忘光光了. 欧几里德算法 扩展欧几里德算 ...
- 使用sqoop 在关系型数据库和Hadoop之间实现数据的抽取
(一)从关系型数据库导入至HDFS 1.将下面的参数保持为 import.script import --connectjdbc:mysql://192.168.1.14:3306/test--use ...
- iOS KVC valueForKeyPath学习心得
#import <Foundation/Foundation.h> @interface myClass1 : NSObject @property (nonatomic, copy) N ...