小编use*_*587的帖子

Amazon S3 对象过期

我阅读了很多关于如何过期(删除)亚马逊 S3 对象并尝试设置生命周期规则来做到这一点,但是对象没有被删除,想知道我做错了什么。

我在 S3 上有这样组织的对象:

Amazon S3 > my-test-bucket > my-test-org > a.csv, 
                                           b.xml, 
                                           c.xsl...
Run Code Online (Sandbox Code Playgroud)

如果它们是 365 天,我需要删除 my-test-bucket 中的所有文件。那里有很多文件已经超过 2 年了,所以按照这个规则,这些文件应该被删除。

在生命周期规则中,我指定添加过滤器来限制范围 my-test-bucket,在“到期”部分,我选择了“当前版本”和“以前版本”,

  • 在对象创建 365 天后使当前版本的对象过期
  • 在成为旧版本 365 天后永久删除旧版本
  • 该规则适用于前缀“my-test-bucket”

my-test-bucket 未启用版本控制。

完成所有这些后,我一直在等待和等待,但什么也没发生。那些旧文件还在。我的问题是:

  1. 什么时候自动过期?每天午夜还是什么?
  2. 是否有一个按钮可以让我立即使对象过期?
  3. 就我而言,我在 my-test-org 下而不是在 my-test-bucket 下有文件,这条规则是否仍然有效?我是否必须在规则中应用通配符以确保它检查所有组织文件夹中的所有文件?

谢谢

amazon-s3

3
推荐指数
1
解决办法
2420
查看次数

eclipse dropins 文件夹在哪里

我刚刚下载了 eclipse 2019-03 (4.11.0),并且需要安装 google-java-format 插件,根据说明我需要将 google-java-format Eclipse 插件放到 eclipse dropins 文件夹中,我环顾四周有没有这样的文件夹,通过谷歌周围我决定手动创建这个文件夹现在文件夹目录看起来像这样

/Users/ddd/eclipse/java-2019-03
                               /Eclipse.app
                               /dropins
                                  google-java-format-eclipse-plugin_1.6.0.jar
Run Code Online (Sandbox Code Playgroud)

然后我重新启动 Eclipse 并尝试配置 java 代码格式化程序以使用 google java 格式: 在此输入图像描述

似乎该插件没有被 Eclipse 拾取,我是否将 dropins 文件夹放在了错误的位置?

eclipse eclipse-plugin google-java-format

3
推荐指数
1
解决办法
5434
查看次数

scala map 通过键获取值,键不区分大小写

我有一个 Map[String, Info] 的地图,它包含可以是大写或小写的键,如下所示:

person1: PersonInfo1
person2: PersonInfo2
PERSON1: PersonInfo1
Run Code Online (Sandbox Code Playgroud)

我想获取键“person1”的值,如果没有找到,我将尝试使用“PERSON1”键,我尝试了以下代码:

val info = map.get(key) match {
  case Some(personInfo) => personInfo
  case None =>
    map.get(key.toUpperCase()) match {
      case Some(personInfo) => personInfo
      case None             => None
    }
}
Run Code Online (Sandbox Code Playgroud)

但是此返回信息作为具有可序列化的产品类型,我如何将信息作为 PersonInfo 类型返回?Scala 中有没有一种方法可以让我通过键从映射中获取值并忽略键的大小写?

scala hashmap

3
推荐指数
2
解决办法
1518
查看次数

pySpark withColumn 与函数

我有一个包含 2 列的数据框:account_id并且email_address,现在我想再添加一列updated_email_address,我在该列上调用一些函数email_address来获取updated_email_address. 这是我的代码:

def update_email(email):
  print("== email to be updated: " + email)
  today = datetime.date.today()
  updated = substring(email, -8, 8) + str(today.strftime('%m')) + str(today.strftime('%d')) + "_updated"
  return updated

df.withColumn('updated_email_address', update_email(df.email_address))
Run Code Online (Sandbox Code Playgroud)

但结果显示updated_email_address列为空:

+---------------+--------------+---------------------+
|account_id     |email_address |updated_email_address|
+---------------+--------------+---------------------+
|123456gd7tuhha |abc@test.com  |null           |
|djasevneuagsj1 |cde@test.com  |null           |
+---------------+--------------+---------------+
Run Code Online (Sandbox Code Playgroud)

updated_email在它打印出来的函数内部:

Column<b'(email_address + == email to be udpated: )'>
Run Code Online (Sandbox Code Playgroud)

它还将 df 的列数据类型显示为:

dfData:pyspark.sql.dataframe.DataFrame
account_id:string
email_address:string
updated_email_address:double
Run Code Online (Sandbox Code Playgroud)

为什么updated_email_address列类型是double?

user-defined-functions apache-spark apache-spark-sql pyspark

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

遍历列表以调用不同的功能

我有一个整数列表,需要遍历该列表并调用所有具有相同输入参数的不同函数,这是我的代码:

  def callRandomFunctions(config: config, prefix: String): ChainBuilder = {
    val randomList = Random.shuffle(List(1, 2, 3, 4))
    randomList.foreach { _ =>
      _ match {
        case 1 => func1(config, prefix)
        case 2 => func2(config, prefix)
        case 3 => func3(config, prefix)
        case 4 => func4(config, prefix)
      }
    }
  }

 def func1(config: config, prefix: String): ChainBuilder = {...}
 def func2(config: config, prefix: String): ChainBuilder = {...}
 def func3(config: config, prefix: String): ChainBuilder = {...}
 def func4(config: config, prefix: String): ChainBuilder = {...} 
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:

missing …
Run Code Online (Sandbox Code Playgroud)

scala gatling

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

如何在CSV文件中转义逗号

我有包含“,”的字符串,需要将其序列化/反序列化为 CSV。我已经能够正确地序列化它,但是当反序列化时,它总是错误的。这是我的 Java 代码

List<String> header = ...
test1,
test2, test3  <-- string contains comma ,
test4

List<String> updatedHeaderList = Lists.transform(headerList, new Function<String, String> () {
            public String apply(String input) {
                return  StringEscapeUtils.escapeCsv(input);
            }
        });

Joiner joiner = Joiner.on(separator);
        stringBuilder = joiner.appendTo(stringBuilder, updatedHeaderList);
        stringBuilder.append("\n");
        return stringBuilder.toString();
Run Code Online (Sandbox Code Playgroud)

当我检查序列化字符串时,它是: test1, "test2\, test3", test4 对我来说看起来很合适

然后我尝试反序列化它:

Splitter.on(",").splitToList(resultString) 
it returned list as 
test1, 
test2,
test3,
test4
Run Code Online (Sandbox Code Playgroud)

我怎样才能将它反序列化回

test1
test2, test3
test4 
Run Code Online (Sandbox Code Playgroud)

谢谢

java csv

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

apache poi写HH:mm:ss字符串到Excel时间数据类型

我使用apache poi将CSV文件重写为Excel,对于任何字符串,如HH:mm:ss,我需要将其转换为适当的Excel数据类型,以便用户可以对该列应用sum()函数.我尝试了不同的数据类型,但是当我打开excel文件时,我无法对该列求和,总和显示为"0:00:00",即使在Excel中单击该列显示为"时间"数据类型,

这是我的代码:

CreationHelper creationHelper = workbook.getCreationHelper();
HSSFCellStyle timeStyle = workbook.createCellStyle();          
timeStyle.setDataFormat(creationHelper.createDataFormat().getFormat("h:mm:ss"));
cell.setCellValue(column);
if (isTime(column)) {
  cell.setCellStyle(timeStyle);
}

private boolean isTime(String value) {
        try {
            dtf.parseDateTime(value);
            return true;
        } catch (IllegalArgumentException e) {
            return false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我的excel文件 在此输入图像描述

apache-poi

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

Java干扰与Generic类及其实现

我有一个名为ReportWriter的接口,它将报告写入OutputStream,Report类包含reportRow列表,也是一个抽象类:

public interface ReportWriter<T extends ReportRow> {
    OutputStream writeReport(Report<T> report) throws ReportWriterException;
}

public abstract class Report<T extends ReportRow> {
   private List<T> rows = Lists.newArrayList();
   ...
}

public abstract class ReportRow {...}
Run Code Online (Sandbox Code Playgroud)

现在我有CsvWriter实现ReportWriter,

public class CsvWriter<T extends ReportRow> implements ReportWriter {
        @Override
        public ByteArrayOutputStream writeReport(Report report) throws ReportWriterException {
        ...
         for (T row : report.getRows()) {  <-- incompatible type
               ..write here..
         }
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,它抱怨不兼容的类型:

require Object found T. 
Run Code Online (Sandbox Code Playgroud)

我不理解在Report类中我已经指定T是ReportRow的子类,为什么我抱怨这个?

然后我尝试更新CsvWriter的writeReport,如下所示:

public class CsvWriter<T extends ReportRow> implements ReportWriter {
   @Override
   public …
Run Code Online (Sandbox Code Playgroud)

java generics interface

0
推荐指数
1
解决办法
92
查看次数