Я пытаюсь подать искровую работу через Ливи.В работе мне нужно опубликовать данные json в параметре args при вызове livy. Это то, что я сделал
String payload = "{\"name\": \"myname\", \"id\": \"101\"}";
String data="{ \"file\":\"hdfs://some.jar\" ,\"className\":\"someclass\",\"args\":["+"\""+payload+"\""+"], \"proxyUser\":\"clsadmin\"}";
String[] command = {"curl", "-v","-g", "-u" ,"id:pwd", "-H", "Content-Type:application/json" , "-H", "X-Requested-By:livy" , url ,"--data", data};
Это не работает.Теперь, если я изменю свою полезную нагрузку на эту. Это работает.
String payload = "{\\\"name\\\": \\\"myname\\\", \\\"id\\\": \\\"101\\\"}";
Как я могу избежать использования 3 обратной косой черты в полезной нагрузке?Есть ли лучший способ сделать это.Я использую curl для вызова URL Ливии.
Process p = process.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
StringBuilder builder = new StringBuilder();
String line = null;
while ( (line = reader.readLine()) != null)
{
builder.append(line);
builder.append(System.getProperty("line.separator"));
}