@Nullable
public static PartitionKey getOutputPartitionKey(Map<String, String> arguments, Partitioning partitioning) {
Map<String, String> keyArguments = FileSetProperties.propertiesWithPrefix(arguments, OUTPUT_PARTITION_KEY_PREFIX);
if (keyArguments.isEmpty()) {
return null;
}
PartitionKey.Builder builder = PartitionKey.builder();
for (Map.Entry<String, FieldType> entry : partitioning.getFields().entrySet()) {
String fieldName = entry.getKey();
FieldType fieldType = entry.getValue();
String stringValue = keyArguments.get(fieldName);
Comparable fieldValue = convertFieldValue("key", "value", fieldName, fieldType, stringValue, false);
builder.addField(fieldName, fieldValue);
}
return builder.build();
}