我目前使用Sparks预配置的./ec2目录,使用EC2集群自动化我的Apache Spark Pyspark脚本.出于自动化和调度的目的,我想使用Boto EMR模块将脚本发送到集群.
我能够在EMR集群上引导和安装Spark.我也可以使用我的本地机器版本的pyspark 在EMR上启动脚本,并设置master如下:
$: MASTER=spark://<insert EMR master node of cluster here> ./bin/pyspark <myscriptname.py>
Run Code Online (Sandbox Code Playgroud)
但是,这需要我在本地运行该脚本,因此我无法充分利用Boto的能力1)启动集群2)添加脚本步骤和3)停止集群.我已经找到了使用script-runner.sh和emr"step"命令进行spark-shell(scala)的示例,但我认为使用Python模块(pyspark)有一种更简单的方法.非常感谢提前!
我正在尝试插入这一行数据(我从元组列表中解析)
(0L, u'2012-11-06T16:23:36-05:00', 0L, None, 23759918L, u'baseline', u'0 to 100', nan, 105114L, 2009524L, True, u'charge', u'Charge')
Run Code Online (Sandbox Code Playgroud)
进入mySQL数据库表,但我似乎有空值(NaN)的问题,因为我收到此错误:
OperationalError: (1054, "Unknown column 'nan' in 'field list'")
Run Code Online (Sandbox Code Playgroud)
我已经尝试在mySQL中使列可以为空,并且还创建所有文本字段,但仍然没有骰子..
我当前正在运行一个脚本,使用“执行多个”函数将值(元组列表)插入到 MySQL 数据库中。当我使用少量行(`1000)时,脚本运行良好。
当我使用大约 40,000 行时,我收到以下错误:
cursor.executemany( stmt, trans_frame)
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\IPython\core\interactiveshell.py", line 2538, in run_code
exec code_obj in self.user_global_ns, self.user_ns
File "<ipython-input-1-66b44e71cf5a>", line 1, in <module>
cursor.executemany( stmt, trans_frame)
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 253, in executemany
r = self._query('\n'.join([query[:p], ',\n'.join(q), query[e:]]))
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 346, in _query
rowcount = self._do_query(q)
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 310, in _do_query
db.query(q)
OperationalError: (2006, 'MySQL server has gone away')
Run Code Online (Sandbox Code Playgroud)
有什么建议么?