小编Che*_*rry的帖子

job.com在aws胶水中执行了哪些操作?

应该结束每个作业脚本代码,job.commit()但这个函数的确切操作是什么?

  1. 它只是工作结束标记吗?
  2. 可以在一个工作期间调用两次(如果是 - 在什么情况下)?
  3. job.commit()调用后执行任何python语句是否安全?

PS我没有在PyGlue.zipaws py源代码中找到任何描述:(

amazon-web-services aws-glue

7
推荐指数
3
解决办法
3531
查看次数

如何将带参数的命名参数传递给aws批处理?

考虑一下aws批处理作业定义:

MyJobDefinition:
    Type: "AWS::Batch::JobDefinition"
    Properties:
        Type: container
        Parameters: {}
        JobDefinitionName: "my-job-name"
        ContainerProperties:
            Command:
                - "java"
                - "-jar"
                - "my-application-SNAPSHOT.jar"
                - "--param1"
                - "Ref::param1"
                - "--param2"
                - "Ref::param2"
Run Code Online (Sandbox Code Playgroud)

调用哪个结果:

java -jar my-application-SNAPSHOT.jar --param1 someValue1 --param2 someValue2
Run Code Online (Sandbox Code Playgroud)

如何更改作业定义以使其喜欢(注意等号):

java -jar my-application-SNAPSHOT.jar --param1=someValue1 --param2=someValue2
Run Code Online (Sandbox Code Playgroud)

请注意,Ref::param1它不是cloudformation模板参数,而是批量作业参数.

amazon-web-services aws-cloudformation docker aws-batch

7
推荐指数
1
解决办法
880
查看次数

如何使用弹簧数据cassandara创建表?

我创建了自己的存储库:

public interface MyRepository extends TypedIdCassandraRepository<MyEntity, String> {
}
Run Code Online (Sandbox Code Playgroud)

那么问题是如何自动创建cassandra表呢?目前Spring注入MyRepository试图将实体插入到不存在的表中.

那么有没有办法在spring容器启动期间创建cassandra表(如果它们不存在)?

PS如果只有config boolean属性而不添加xml行并创建类似BeanFactory等的东西,那将是非常好的 :-)

java spring cassandra spring-data-cassandra

6
推荐指数
3
解决办法
5865
查看次数

当json元素不存在时,如何设置spray-json设置为null?

这是Spray-json 示例。这是NullOptions特性。

问题是当我声明一个案例类时说

object MyJsonProtocol extends DefaultJsonProtocol  {
  implicit val some: RootJsonFormat[Some] = jsonFormat2(Some)
}

case class Some (
                name:String,
                age:Int
                )
Run Code Online (Sandbox Code Playgroud)

并且 json 不包含字段,例如:

{
    "name":"John"
}
Run Code Online (Sandbox Code Playgroud)

我得到: java.util.NoSuchElementException: key not found: age

所以我必须添加一个Option和这样的NullOption特征:

object MyJsonProtocol extends DefaultJsonProtocol with NullOptions  {
  implicit val some: RootJsonFormat[Some] = jsonFormat2(Some)
}

case class Some (
                name:String,
                age:Option[Int]
                )
Run Code Online (Sandbox Code Playgroud)

一切正常。但我不想有一个所有成员都是Option. 有没有办法配置spray json解组来只设置空值而不需要额外的Option类型?

聚苯乙烯

我知道一般来说Option比空检查更好,但在我的情况下它只是猴子代码。

响应处理期间编组的完整示例也在这里

json scala spray spray-json

6
推荐指数
1
解决办法
5717
查看次数

如何使用来自soapui的json body设置get请求?

使用正文中包含的json数据发送get请求是合法的(在某些情况下).但soapui隐藏"body"子窗口我可以粘贴json字符串,因此只有键值对菜单可用.是否有任何解决方法在soapui中发送get请求与body?

java json get http soapui

6
推荐指数
1
解决办法
7491
查看次数

如何在Intellij Idea中测试运行之间加载spring上下文?

Spring-test提供了在测试运行期间加载spring上下文的注释.例如,有一个org.springframework.test.context.junit4.SpringJUnit4ClassRunnerjunit runner类和org.springframework.test.context.ContextConfiguration注释用于指定上下文加载.对于集成测试,上下文加载可能会很长,并且在调试期间需要运行相同的测试十几次,直到它"丢失"所有错误.有没有办法在没有多次加载上下文的情况下这样做?例如,我完成了调试上下文加载,然后运行该上下文并开始在intellij中运行测试?这可能与Intellij Idea有关吗?

java junit spring intellij-idea

6
推荐指数
1
解决办法
454
查看次数

如何在 aws gllue 中读取非 utf-8 编码的表?

这是一个用于读取 csv 文件(scala)的代码:

val input = glueContext
  .getCatalogSource(database = "my_database", tableName = "my_table")
  .getDynamicFrame()
Run Code Online (Sandbox Code Playgroud)

哪个失败了,错误不明确:

com.amazonaws.services.glue.util.FatalException: Unable to parse file: my_file_20170101.csv.gz
at com.amazonaws.services.glue.readers.JacksonReader.hasNextFailSafe(JacksonReader.scala:91)
at com.amazonaws.services.glue.readers.JacksonReader.hasNext(JacksonReader.scala:36)
at com.amazonaws.services.glue.hadoop.TapeHadoopRecordReader.nextKeyValue(TapeHadoopRecordReader.scala:63)
at org.apache.spark.rdd.NewHadoopRDD$$anon$1.hasNext(NewHadoopRDD.scala:199)
at org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:39)
at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:408)
at org.apache.spark.shuffle.sort.BypassMergeSortShuffleWriter.write(BypassMergeSortShuffleWriter.java:126)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:96)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:53)
at org.apache.spark.scheduler.Task.run(Task.scala:99)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:282)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Run Code Online (Sandbox Code Playgroud)

该代码适用于其他 scv 文件,但此文件具有ANSI编码。有没有办法告诉胶水(或可能激发内部结构)以不同的编码读取文件?

scala character-encoding amazon-web-services apache-spark aws-glue

6
推荐指数
1
解决办法
2877
查看次数

如何为爬取的表设置名称?

AWS 爬网程序具有用于添加新表的前缀属性。因此,如果我将前缀留空并启动爬虫,s3://my-bucket/some-table-backup它会创建名称为的表some-table-backup。有没有办法将其重命名为my-awesome-table并保持爬虫更新重命名的表?或者设置爬虫以创建具有提供名称的新表?

amazon-web-services aws-glue

6
推荐指数
1
解决办法
4008
查看次数

如何因错误而结束或失败 AWS Glue 作业?

考虑一个 AWS Glue 作业片段:

val input = glueContext
  .getCatalogSource(database = "my_db", tableName = "my_table")
  .getDynamicFrame()
val myLimit = 10    
if (input.count() <= myLimit) {
  // end glue job here with error
}
// continue execution
Run Code Online (Sandbox Code Playgroud)

如何在错误状态下退出作业?如果我只是跳过执行,它就会以成功结束;如果我抛出异常,它就会因异常而失败。我可以调用某些东西来停止具有失败/错误状态的作业,但不引发异常吗?

更新

乍一看我可以:

val spark: SparkContext = SparkContext.getOrCreate()
val glueContext: GlueContext = new GlueContext(spark)
val jobId = GlueArgParser.getResolvedOptions(sysArgs, Seq("JOB_ID").toArray)("JOB_ID")
spark.cancelJob(jobId)
Run Code Online (Sandbox Code Playgroud)

但:

  1. SparkContext来自内部框架,结束工作可能会导致不可预测(不稳定)的结果。
  2. org.apache.spark.SparkContext#cancelJob接收Int而 AWS Glue 有String JOB_ID这样的:j_aaa11111a1a11a111a1aaa11a11111aaa11a111a1111111a111a1a1aa111111a。所以不能cancelJob直接传递。

scala amazon-web-services aws-glue

6
推荐指数
1
解决办法
7200
查看次数

如何自定义 SpringWebFlux WebClient xml+rss JAXB 反序列化?

看一下spring webflux客户端的json配置示例:

   ExchangeStrategies strategies = ExchangeStrategies
        .builder()
        .codecs(clientDefaultCodecsConfigurer -> {

        //how to do the same but xml?
        clientDefaultCodecsConfigurer.defaultCodecs().jackson2JsonEncoder(new Jackson2JsonEncoder(new ObjectMapper(), MediaType.APPLICATION_JSON));
            clientDefaultCodecsConfigurer.defaultCodecs().jackson2JsonDecoder(new Jackson2JsonDecoder(new ObjectMapper(), MediaType.APPLICATION_JSON));

        }).build();

WebClient webClient = WebClient.builder().exchangeStrategies(strategies).build();
Run Code Online (Sandbox Code Playgroud)

同样的问题是这一个,但对于JAXB XML序列化。是否有 JAXB 和 xml 的解码器实现?是否可以使用HttpMessageConverter作为webclient 的解码器来使 spring boot 控制器和客户端实现一致?

java spring jaxb spring-boot spring-webflux

6
推荐指数
1
解决办法
1815
查看次数