Skip to content

Commit f7a63d5

Browse files
committed
Merge branch 'dev' into dev_update
2 parents f8bb36b + 45e133a commit f7a63d5

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/main/java/org/radarcns/RestructureAvroRecords.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.radarcns;
1818

1919
import java.io.File;
20+
import java.io.FileWriter;
2021
import java.io.IOException;
2122
import java.nio.file.Files;
2223
import java.text.SimpleDateFormat;
@@ -52,6 +53,7 @@ public class RestructureAvroRecords {
5253
private final String outputFileExtension;
5354
private static final String OFFSETS_FILE_NAME = "offsets.csv";
5455
private static final String BINS_FILE_NAME = "bins.csv";
56+
private static final String SCHEMA_OUTPUT_FILE_NAME = "schema.json";
5557
private static final SimpleDateFormat FILE_DATE_FORMAT = new SimpleDateFormat("yyyyMMdd_HH");
5658

5759
static {
@@ -257,14 +259,21 @@ private void writeRecord(GenericRecord record, String topicName, FileCacheStore
257259
String outputFileName = createFilename(valueField, timeField);
258260

259261
// Clean user id and create final output pathname
260-
String userId = keyField.get("userId").toString().replaceAll("\\W+", "");
262+
String userId = keyField.get("userId").toString().replaceAll("[^a-zA-Z0-9_-]+", "");
261263
File userDir = new File(this.outputPath, userId);
262264
File userTopicDir = new File(userDir, topicName);
263265
File outputFile = new File(userTopicDir, outputFileName);
264266

265267
// Write data
266268
cache.writeRecord(outputFile, record);
267269

270+
File schemaFile = new File(userTopicDir, SCHEMA_OUTPUT_FILE_NAME);
271+
if (!schemaFile.exists()) {
272+
try (FileWriter writer = new FileWriter(schemaFile, false)) {
273+
writer.write(record.getSchema().toString(true));
274+
}
275+
}
276+
268277
// Count data (binned and total)
269278
bins.add(topicName, keyField.get("sourceId").toString(), valueField, timeField);
270279
processedRecordsCount++;

0 commit comments

Comments
 (0)