小编Ken*_*ams的帖子

Java intellij多行字符串

我目前正在使用inttelij for java,作为一个phpstorm用户以前我习惯于设置字符串这样的跨度多行(我知道这是不正确的Java语法):

@Query("select count(*) from table where
        value= :xxx
        AND value= :xxx2")
Run Code Online (Sandbox Code Playgroud)

当它希望设置如下:

@Query("select count(*) from table where "+
       "value= :xxx "+
       "AND value2 =:xxx2)
Run Code Online (Sandbox Code Playgroud)

是否有某种字符串编辑器插件我可以在intelliJ上使用,或者某种代码格式化选项我可以用来使这或多或少像phpstorm?

java string intellij-idea phpstorm

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

如何提高基于String或Double的值的类型安全性?

我想知道使用我的代码实现类型安全的最佳方法,当各种值可能都是Strings或Doubles时,但仍然不兼容.例如,我可能有单位为磅和千克,但我应该被禁止分配给另一个.同样地,我可能有一个人ID作为String和动物ID的查找表作为Map[String,Int],但我应该被禁止在动物表中查找一个人.

从概念上讲,我正在寻找这样的东西:

class PersonId extends String
class AnimalId extends String

var p : PersonId = "1234"
var tab : Map[AnimalId,Int] = Map("foo" -> 5, "bar" -> 6)
tab.get(p)  // Want this to cause a compile error
Run Code Online (Sandbox Code Playgroud)

但是有几个问题使得它不起作用.建议适合精神的东西?

scala

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

dplyr: select by name and value at the same time

(This question is probably a duplicate, but I can't find it being asked yet...)

Using dplyr techniques, how can I select columns from a data.frame by both names & values at the same time? For example the following (which doesn't work):

> data.frame(x=4, y=6, z=3) %>%
    select_if(matches('x') | mean(.) > 5)
Error: No tidyselect variables were registered
Run Code Online (Sandbox Code Playgroud)

In base R, I would do something like this:

> df <- data.frame(x=4, y=6, z=3)
> df[names(df) == 'x' | colMeans(df) > 5] …
Run Code Online (Sandbox Code Playgroud)

select r dplyr

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

Java布尔CLI选项

我正在使用Apache Commons CLI库进行命令行解析.它适用于String值选项,但我不确定如何干净地处理布尔值的命令行标志.我试过这个:

    CommandLineParser parser = new GnuParser();
    Options options = new Options();
    options.addOption(new Option("parseOnly", "Only parse"));
    CommandLine cl = parser.parse( options, args );

    if( cl.hasOption( "parseOnly" ) )
    PARSE_ONLY = (Boolean) cl.getParsedOptionValue( "parseOnly" );
Run Code Online (Sandbox Code Playgroud)

但是这NullPointerException在文件行上失败了,因为cl.getParsedOptionValue()返回null并且无法转换为Boolean.

cl.hasOption( "parseOnly" )返回true或false,但是从文档中不清楚这意味着什么 - 它是否意味着用户指定它并且它可能是true还是false?或者它是否意味着标志被激活?如果你想让一个标志默认为true,并让用户将其关闭(如其他getopt解析器中的--noParseOnly),该怎么办?

我会感谢人们提出的任何建议,包括RTFM - 我确信这是一个很好的基础.谢谢.

java getopt apache-commons

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

Spark作业中的Scala成员字段可见性

我有一个这样定义的Scala类:

import org.apache.spark.{SparkConf, SparkContext}

object TestObject extends App{
  val FAMILY = "data".toUpperCase

  override def main(args: Array[String]) {
    val sc = new SparkContext(new SparkConf())

    sc.parallelize(1 to 10)
      .map(getData)
      .saveAsTextFile("my_output")
  }

  def getData(i: Int) = {
    ( i, FAMILY, "data".toUpperCase )
  }
}
Run Code Online (Sandbox Code Playgroud)

我将其提交给YARN集群,如下所示:

HADOOP_CONF_DIR=/etc/hadoop/conf spark-submit \
    --conf spark.hadoop.validateOutputSpecs=false \
    --conf spark.yarn.jar=hdfs:/apps/local/spark-assembly-1.2.1-hadoop2.4.0.jar \
    --deploy-mode=cluster \
    --master=yarn \
    --class=TestObject \
    target/scala-2.11/myjar-assembly-1.1.jar
Run Code Online (Sandbox Code Playgroud)

出乎意料的是,输出如下所示,表明该getData方法看不到的值FAMILY

(1,null,DATA)
(2,null,DATA)
(3,null,DATA)
(4,null,DATA)
(5,null,DATA)
(6,null,DATA)
(7,null,DATA)
(8,null,DATA)
(9,null,DATA)
(10,null,DATA)
Run Code Online (Sandbox Code Playgroud)

关于字段,作用域和可见性以及火花提交,对象和单例以及诸如此类的东西,我需要了解什么才能理解为什么会这样?如果我基本上希望将变量定义为该getData方法可见的“常量”,那我应该怎么做呢?

visibility scala initialization apache-spark

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

如何在Jupyter笔记本中配置缩进大小?

我希望在我的Jupyter笔记本中有一个默认缩进大小为2个空格而不是4个空格.我怎样才能做到这一点?

注意:这不是重复如何在IPython笔记本中将autoindent更改为2个空格,因为该问题适用于(已弃用)IPython笔记本而非(当前)Jupyter笔记本.

jupyter jupyter-notebook

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

访问with()函数的'data'参数?

exprwith()函数的表达式中,是否可以data直接访问参数?这就是我在概念上的意思:

> print(df)
  result qid     f1     f2     f3
1     -1   1 0.0000 0.1253 0.0000
2     -1   1 0.0098 0.0000 0.0000
3      1   1 0.0000 0.0000 0.1941
4     -1   2 0.0000 0.2863 0.0948
5      1   2 0.0000 0.0000 0.0000
6      1   2 0.0000 0.7282 0.9087
> with(df, subset(.data, select=f1:f3))  # Doesn't work
Run Code Online (Sandbox Code Playgroud)

当然上面的例子有点傻,但对于这样的事情会很方便:

with(subset(df, f2>0), foo(qid, vars=subset(.data, select=f1:f3)))
Run Code Online (Sandbox Code Playgroud)

我试图拨开周围environment()parent.frame()等,但没有拿出任何工作.

也许这真的是一个问题eval(),因为这是如何with.default()实现的.

r dataframe

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

杰克逊JSON无法反序列化哈希集

我一直在寻找以下异常消息的解决方案,当我将更新发布到实体时,我在spring-boot / spring-mvc项目中得到了该消息:

   o.s.w.s.m.m.a.HttpEntityMethodProcessor  : Written [{timestamp=Wed Jan 14 11:15:34 MST 2015, status=400, error=Bad Request, exception=org.springframework.http.converter.HttpMessageNotReadableException, message=Could not read JSON: Can not deserialize instance of java.util.HashSet out of START_OBJECT token

at [Source: org.apache.catalina.connector.CoyoteInputStream@7f5840c4; line: 1, column: 146] (through reference chain: com.company.product.model.people.dto.EmployeeDTO["user"]->com.company.product.security.dto.UserDTO["roles"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.util.HashSet out of START_OBJECT token
Run Code Online (Sandbox Code Playgroud)

但是,看来我的情况与我在StackOverflow和Jackson文档中看到的其他情况略有不同。

这是我的两个数据结构:

public class EmployeeDTO {
   List<WorkdayDTO> workDays = new ArrayList<WorkdayDTO>();
   private UserDTO user;
   ...
   public List<WorkdayDTO> getWorkDays() {
        return workDays;
    }

    public void setWorkDays(List<WorkdayDTO> …
Run Code Online (Sandbox Code Playgroud)

spring-mvc jackson spring-boot

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