小编nic*_*ola的帖子

SPARK SQL - 使用DataFrames和JDBC更新MySql表

我正在尝试使用Spark SQL DataFrames和JDBC连接在MySql上插入和更新一些数据.

我已成功使用SaveMode.Append插入新数据.有没有办法从Spark SQL更新MySql Table中已存在的数据?

我要插入的代码是:

myDataFrame.write.mode(SaveMode.Append).jdbc(JDBCurl,mySqlTable,connectionProperties)

如果我改为SaveMode.Overwrite它会删除整个表并创建一个新表,我正在寻找像MySql中可用的"ON DUPLICATE KEY UPDATE"之类的东西

jdbc apache-spark apache-spark-sql

19
推荐指数
2
解决办法
1万
查看次数

Aws Athena - 创建跳过第一行的外部表

我正在尝试使用Aws Athena在csv文件上创建一个外部表,但代码如下,但该行TBLPROPERTIES ("skip.header.line.count"="1")不起作用:它不会跳过csv文件的第一行(标题).

CREATE EXTERNAL TABLE mytable
(
  colA string,
  colB int
  )

 ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
 WITH SERDEPROPERTIES (
   'separatorChar' = ',',
   'quoteChar' = '\"',
   'escapeChar' = '\\'
   )
STORED AS TEXTFILE
LOCATION 's3://mybucket/mylocation/'
TBLPROPERTIES (
  "skip.header.line.count"="1")
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

amazon-athena

14
推荐指数
4
解决办法
1万
查看次数

如何在YARN上优雅地停止Spark Streaming应用程序?

我正在集群模式下在YARN上运行Spark Streaming应用程序,并且我正在尝试实现正常关闭,以便在应用程序被终止时它将在停止之前完成当前微批处理的执行.

以下一些教程,我已经配置spark.streaming.stopGracefullyOnShutdowntrue与我添加以下代码,以我的应用程序:

sys.ShutdownHookThread {
   log.info("Gracefully stopping Spark Streaming Application")  
   ssc.stop(true, true)
   log.info("Application stopped")
}
Run Code Online (Sandbox Code Playgroud)

但是,当我杀死应用程序时

yarn application -kill application_1454432703118_3558

那一刻执行的微批量没有完成.

驱动程序中,我看到第一行日志打印("正常停止Spark Streaming应用程序"),但不是最后一行("应用已停止").

ERROR yarn.ApplicationMaster: RECEIVED SIGNAL 15: SIGTERM
INFO streaming.MySparkJob: Gracefully stopping Spark Streaming Application
INFO scheduler.JobGenerator: Stopping JobGenerator gracefully
INFO scheduler.JobGenerator: Waiting for all received blocks to be consumed for job generation
INFO scheduler.JobGenerator: Waited for all received blocks to be consumed for job generation
INFO streaming.StreamingContext: Invoking stop(stopGracefully=true) from shutdown hook …
Run Code Online (Sandbox Code Playgroud)

hadoop-yarn spark-streaming

9
推荐指数
1
解决办法
2278
查看次数

Amazon EMR - 如何设置步骤的超时

有没有办法为Amazon Aws EMR中步骤设置超时

我正在EMR上运行一个批量Apache Spark作业,如果它在3小时内没有结束,我希望该作业停止超时.

我找不到一种方法来设置超时,不是在Spark中,也不是在Yarn中,也不是在EMR配置中.

谢谢你的帮助!

amazon-emr emr hadoop-yarn apache-spark

9
推荐指数
1
解决办法
1686
查看次数

Airflow - 如何重新加载运算符和插件

我是 Airflow 的新手,当我更改代码时,我无法理解如何重新加载运算符/插件。我正在使用 LocalExecutor 和外部数据库 (MySql)。我尝试重新启动网络服务器和调度程序,但在导入 dags 时仍然遇到相同的错误:

    File "/home/ec2-user/airflow/dags/extractor.py", line 2, in <module>
    from airflow.contrib.operators.emr_spark_plugin import EmrSparkOperator
ImportError: No module named emr_spark_plugin
Run Code Online (Sandbox Code Playgroud)

airflow

5
推荐指数
2
解决办法
8483
查看次数