我正在导入 groovy 中的原始数据,数十万个条目。我使用表字段作为哈希映射的键,然后在groove sql 数据集上使用add(hash) 方法。数据集进入 postgres 表,ID 字段是根据序列自动生成的。我需要在插入每条记录时获取它的 ID。
在 java + hibernate 中,ID 会自动插入到被持久化的对象的相应字段中。在这种情况下,add() 方法不会返回任何内容,也不会将 id 字段添加到哈希表中。出于效率原因,我试图避免在这里使用 hibernate/gorm 。
感谢您的指点或更好的方法。
我在亚马逊S3桶中存储了200万个文件.下面有一个给定的根(l1),l1下的目录列表,然后每个目录包含文件.所以我的桶看起来像下面这样
l1/a1/file1-1.jpg
l1/a1/file1-2.jpg
l1/a1/... another 500 files
l1/a2/file2-1.jpg
l1/a2/file2-2.jpg
l1/a2/... another 500 files
....
l1/a5000/file5000-1.jpg
Run Code Online (Sandbox Code Playgroud)
我想尽快列出二级条目,所以我想得到a1,a2,a5000.我不想列出所有的密钥,这将花费更长的时间.
我很乐意直接使用AWS api,但是到目前为止我已经使用ruby中的right_aws gem玩了http://rdoc.info/projects/rightscale/right_aws
该gem中至少有两个API,我尝试在S3模块中使用bucket.keys(),在S3Interface模块中使用incrementally_list_bucket().例如,我可以设置前缀和分隔符列出所有l1/a1/*,但我无法弄清楚如何仅列出l1中的第一级.在incrementally_list_bucket()返回的哈希中有一个:common_prefixes条目,但在我的测试样本中没有填写.
S3 API可以实现此操作吗?
谢谢!
在Scala我有一个List可选的Option.例如,当您for在a上使用理解List并且您的收益率返回时,就会出现这种情况Option.在我的例子中,我正在处理一个JSON对象并for在字段列表(List[JField])上使用理解.
什么是开拓列表和地图的最佳方式List()来None和List(Some(a))到Some(a)?
第一种方法是
def headOrNone[A](list:List[Option[A]]) =
list match {
case Nil => None
case a::Nil => a
}
Run Code Online (Sandbox Code Playgroud)
另一种方法
def headOrNone[A](list:List[Option[A]]) = list.headOption.getOrElse(None)
Run Code Online (Sandbox Code Playgroud)
第三种方法(headOption实现的变体)
def headOrNone[A](list:List[Option[A]]) = if (list.isEmpty) None else list.head
Run Code Online (Sandbox Code Playgroud)
我个人更喜欢第三种方法.这个函数有一个更好的名称,headOrNone还有什么是惯用的scala方式来编写它?