小编use*_*441的帖子

SQL/Hive计数不同的列

我如何在Hive中执行此操作?

    columnA       columnB    columnC
     100.10      50.60       30
     100.10      50.60       30
     100.10      50.60       20
     100.10      70.80       40
Run Code Online (Sandbox Code Playgroud)

输出应该是:

  columnA   columnB    No_of_distinct_colC
  100.10    50.60       2
  100.10    70.80       1
Run Code Online (Sandbox Code Playgroud)

查询我认为是正确的:

SELECT columnA,columnB,COUNT(distinct column C)
from table_name
group by columnA,columnB
Run Code Online (Sandbox Code Playgroud)

它是否正确?SQL也很好.

更新:如何找到columnC的标准偏差?需要这个尽快.

sql hive

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

python将多行转换为单行

我想将 Python 多行字符串转换为单行。如果我在 Vim 中打开字符串,我可以在每一行的开头看到 ^M 。如何处理字符串以使其全部在一行中,每行之间有制表符分隔。Vim 中的示例如下所示:

  Serialnumber
 ^MName           Rick
 ^MAddress           902, A.street, Elsewhere
Run Code Online (Sandbox Code Playgroud)

我希望它是这样的:

Serialnumber \t Name \t Rick \t Address \t 902, A.street,......
Run Code Online (Sandbox Code Playgroud)

每个字符串都在一行中。我试过

   somestring.replace(r'\r','\t')
Run Code Online (Sandbox Code Playgroud)

但它不起作用。另外,一旦字符串在一行中,如果我想在字符串末尾添加换行符(UNIX 换行符?),我该怎么做?

python string

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

String.valueOf() 和 new String() 的区别

String.valueOf() 和 new String() 有什么区别?你什么时候会使用一个?

示例 1:

public String fun(){

 int foo = 55;
 return String.valueOf(foo);

}
Run Code Online (Sandbox Code Playgroud)

例子2:

public String fun(){

int foo = 55;
return new String(foo);

}
Run Code Online (Sandbox Code Playgroud)

更新:是的,第二个例子没有像下面其他人指出的那样编译。我没有意识到这一点,因为我一直在使用 new String("something" + foo) 并且它已经起作用了,正如 fastcodejava 所指出的那样。那么,如果我使用 new String("something" + foo) 或 String.valueOf(foo) ,两者之间有区别吗?

java string

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

Kafka:Java Producer发送消息后,控制台消费者上没有看到任何消息

我是卡夫卡的新手.我在我的本地机器上创建了一个java生成器,并在另一台机器上设置了一个Kafka代理,比如M2,在网络上(我可以ping,SSH,连接到这台机器).在Eclipse控制台的Producer端,我收到"Message sent".但是,当我检查机器M2上的控制台消费者时,我看不到这些消息.

我的java生产者代码是:

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.clients.producer.ProducerRecord;


import java.util.HashMap;
import java.util.Map;

public class KafkaMessageProducer  {

    /**
     * @param args
     */
    public static void main(String[] args) {

        KafkaMessageProducer reportObj = new KafkaMessageProducer();
        reportObj.send();

    }

    public void send(){

        Map<String, Object> config = new HashMap<String, Object>();
        config.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "135.113.133.60:9092");
        config.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        config.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");

        KafkaProducer<String, String> producer = new KafkaProducer<String, String>(config);
        int maxMessages = 5;
        int count = 0;
        while(count < maxMessages){
            producer.send(new ProducerRecord<String, String>("test", "msg", "message --- #"+count++));
            System.out.println("Message send.."+count);
        }
        producer.close(); …
Run Code Online (Sandbox Code Playgroud)

java apache-kafka

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

Shell脚本在出错时打印行号

我一直在寻找一种在shell脚本出错时打印行号的方法.

我遇到了'-x'选项,它在运行shell脚本时打印该行,但这不是我想要的.也许我可以在每个退出代码之前做$ LINENO?有更清洁的方法吗?

我只想要行号,这样我就可以打开shell脚本并直接转到解释器实现错误的地方.

bash shell scripting

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

如何在客户端将byte[]反序列化为Java POJO(或Object),即客户端如何获取类信息?

我有两个相关问题:

  1. 我可以通过网络发送此类的 byte[]:
class Employee implements Serializable{
    byte[] avroBytes, //avro data in byte[] array
    String name
}
Run Code Online (Sandbox Code Playgroud)

在我的测试用例中,使用 MockMvc,我能够对其进行反序列化,然后将其转换为 Employee 对象,因为我的测试用例可以使用代码中的相同 POJO。然而客户端不会有这个 POJO 或类信息。收到字节后,它如何重建这个 POJO(或其他语言中的等效项)或对象?我需要在标头中发送一些类信息吗?客户端可能使用 Python 或其他某种语言,因此我需要一种使此类信息通用的方法。

在我的测试用例中,这是有效的:

 Employee res = (Employee ) SerializationUtils.deserialize(result.getResponse().getContentAsByteArray());
Run Code Online (Sandbox Code Playgroud)

如果客户端没有此 POJO/信息,他们将如何将反序列化字节转换为 Employee?我可以在我的测试用例中执行此操作,因为我的代码中有 Employee 类。

评论的附加信息:

我使用 org.springframework.util.SerializationUtils serialize() 方法对其进行序列化

java arrays serialization deserialization spring-boot

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

Python从字符串中删除所有撇号

我想在很多字符串中删除所有出现的单撇号和双撇号.

我试过这个 -

mystring = "this string shouldn't have any apostrophe - \' or \" at all"
print(mystring)
mystring.replace("'","")
mystring.replace("\"","")
print(mystring)
Run Code Online (Sandbox Code Playgroud)

虽然它不起作用!我错过了什么吗?

python

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

Java替换正则表达式的所有无效字符

我的字符串很大,当我在循环中读取每个字符串时它会不断变化.它可以包含任何字符,如",/,\.$,?,[,&,.,',),%,^,+,*等.我想逃避所有可能导致正则表达式失败的字符在Java中使用此字符串.Javascript在其中一个帖子中有类似这样的内容 -

return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
Run Code Online (Sandbox Code Playgroud)

Java有类似的东西吗?我不确定逃脱的角色应该是什么.像str.replaceAll("[^\u0000-\u00ff] +","")那样做吗?(但是我在这里丢失数据,如果我用空格替换所有数据,我想避免)

java regex

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

打印具有特定值的List的<key,value>

我已将列表定义为:

  List<Entry<String, Integer>> list
Run Code Online (Sandbox Code Playgroud)

它有字符串的计数.我想迭代列表并打印所有计数为1的字符串/键.

这是我试过的:

for (int i=0;i<list.size();i++) {
    if(list.get(i) == 1){
        System.out.println(list(i));
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到"不兼容的操作数类型Map.Entry和int"

java list

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

sqlplus在静默模式下不静默

我在 shell 脚本中使用 sqlplus 并且它可以工作(sqlplus 没有静默模式)但我可以在终端中看到输出。我尝试使用不同的组合在静音模式下运行它,但它没有用 -

sqlplus -s "$DBUSER/$DBPWD@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=$DBHOST)(Port=$DBPORT))(CONNECT_DATA=(SID=$DBSID)))"  @$SCRHOME/getCsv$sqlFile.sql
Run Code Online (Sandbox Code Playgroud)

<顺便说一句 -s 是黄色而不是黑色,就像 shell 脚本中的 echo 命令>

它有效,但我可以在控制台上看到输出。我也试过:

sqlplus \-s "....
sqlplus \-s \ "...
sqplus -S
sqlplus -s \ << EOF "...
Run Code Online (Sandbox Code Playgroud)

我尝试删除双引号,但在这种情况下,即使 sqlplus 命令也不起作用。我在 shell 脚本中使用这个命令。

oracle shell sqlplus

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

在另一个类中调用方法时,Java空指针异常

我有类似的东西:

       public class A{
    public static B[] bObj;

    public A(){
        bObj = new B[2]; // create array of objects of class B
    }

    public static void main(String[] args){
        A aObj = new A();
        for(i=0;i<2;i++){
            bObj[i].testprint();
        }

    }
}

class B{
    public testprint(){
        System.out.println("Inside testprint()");
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我在bObj [i] .testprint()处得到NullPointer异常.我确实在A的构造函数中做了新的B()但是我不知道为什么它不起作用.

java oop

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

syschronized getter和setter但需要避免死锁

我有同步静态getter和setter,如:

public synchronized static int getValue() {
    return value;
}

public synchronized static void setValue(int Val) {
    value = Val;
}
Run Code Online (Sandbox Code Playgroud)

如果我需要增加值,我将使用类似的东西

setValue(getValue() + 1);
Run Code Online (Sandbox Code Playgroud)

可能有一个线程设置'值'并立即尝试获取'值'.在这种情况下会发生死锁吗?如果是,那该如何避免呢?

java multithreading

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

Python加入一个字符串列表

这似乎很容易,但我收到一个错误,我不知道如何摆脱它:

counter = 0
list1 = [''] * 11
list1[1] = '000'
list1[6] = counter
list1[10] = '999'
print(list1)
a = "^".join(list1)
print(a)
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

    a = "^".join(list1)
TypeError: sequence item 6: expected str instance, int found
Run Code Online (Sandbox Code Playgroud)

我将字符串列表初始化为null.我需要计数器在每次迭代中为它分配一个唯一的数字.我该如何解决这个错误?

python

-7
推荐指数
2
解决办法
256
查看次数