Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Пробел между json в выходном файле. / 6 сообщений из 6, страница 1 из 1
28.01.2018, 20:44
    #39592488
AlexGru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробел между json в выходном файле.
Добрый день.

Есть исходный json, где много строк - однотипных событий.
Суть задачи в том чтобы разложить в несколько файлов json. Каждое событие в свой файл.

Вот фрагмент кода
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
public void load_source_json(String src_json_file_path,
			                     String app_load_file_path){
		 try{
		    JsonFactory f = new JsonFactory();
	        JsonParser jp = f.createParser(new File(src_json_file_path));
	        ObjectMapper mapper = new ObjectMapper(); 
	        String type = null;
	        File f_applod = new File(app_load_file_path);
	        JsonGenerator jf_appl = mapper.getFactory().createGenerator(new BufferedWriter(new FileWriter(f_applod, true)));
	        int LoadCounter     = 0;
	        int AnyCounter      = 0;
	        int TotalEventsCnt  = 0;
	       
	        while(jp.nextToken() == JsonToken.START_OBJECT) {

	        	  TreeNode node = mapper.readTree(jp);
	        	  TotalEventsCnt++;

	        	    if (node.get("_n").toString().equals("\"aloaded\"")) {	
	        	    	LoadCounter++;
	        	    	mapper.writeValue(jf_appl, node);
	        	    }  else {
	        	    	AnyCounter++;	
	        	    }
              
	        	}
	    	logger.info("LoadCounter     = "+String.valueOf(LoadCounter));
	    	logger.info("AnyCounter      = "+String.valueOf(AnyCounter));
	    	logger.info("TotalEvents     = "+String.valueOf(TotalEventsCnt));
	    	jf_appl.close();

		 } 
	     catch (IOException e) {
		  logger.error(e.fillInStackTrace());
		 }
	}



И всё бы замечательно, работает как надо. Но одна проблема, на выходе между json вставляет пробелы (или переносы строки), а они очень мешают для дальнейшей работе с файлом.

Вот выходной файл
...
Рейтинг: 0 / 0
28.01.2018, 21:13
    #39592509
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробел между json в выходном файле.
AlexGru,
replaceAll знакомо?
...
Рейтинг: 0 / 0
28.01.2018, 21:14
    #39592510
AlexGru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробел между json в выходном файле.
Знакомо, только к чему применять и в каком месте?
Исходный json м.б. 1-10-100Гб.
Пишем объект mapper.writeValue(jf_appl, node);
...
Рейтинг: 0 / 0
28.01.2018, 21:40
    #39592519
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробел между json в выходном файле.
AlexGruна выходе между json вставляет пробелы (или переносы строки),а кто вставляет?
...
Рейтинг: 0 / 0
28.01.2018, 23:21
    #39592543
AlexGru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробел между json в выходном файле.
Как оказалось, отключить можно так
Код: java
1.
jf_appl.setPrettyPrinter(new MinimalPrettyPrinter(""));



пробелы исчезли но вот тут не помогло

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SparkSession spark = SparkSession
.builder()
.appName("Java Spark SQL basic example")
.config("spark.master", "local[*]")
.getOrCreate();

Dataset<Row> df = spark.read().schema(buildSchemaAppLoaded()).json(js_fpath);

df.printSchema();
df.show();
...
Рейтинг: 0 / 0
28.01.2018, 23:44
    #39592546
AlexGru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробел между json в выходном файле.
AlexGru,
Решилось так. это был не пробел, а перенос строки

Код: java
1.
2.
3.
	        MinimalPrettyPrinter pp = new MinimalPrettyPrinter(); 
	        pp.setRootValueSeparator("\n"); 
	        jf_appl.setPrettyPrinter(pp);
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Пробел между json в выходном файле. / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]