public class SelectHelpers
extends java.lang.Object
| Modifier and Type | Class and Description | 
|---|---|
| static class  | SelectHelpers.RowSelectorContainer | 
| Modifier and Type | Field and Description | 
|---|---|
| static SerializableFunction<java.util.List<java.lang.String>,java.lang.String> | CONCAT_FIELD_NAMESThis policy keeps all levels of a name. | 
| static SerializableFunction<java.util.List<java.lang.String>,java.lang.String> | KEEP_NESTED_NAMEThis policy keeps the raw nested field name. | 
| Constructor and Description | 
|---|
| SelectHelpers() | 
| Modifier and Type | Method and Description | 
|---|---|
| static FieldAccessDescriptor | allLeavesDescriptor(Schema schema,
                   SerializableFunction<java.util.List<java.lang.String>,java.lang.String> nameFn) | 
| static Schema | getOutputSchema(Schema inputSchema,
               FieldAccessDescriptor fieldAccessDescriptor)Get the output schema resulting from selecting the given  FieldAccessDescriptorfrom the
 given schema. | 
| static RowSelector | getRowSelector(Schema inputSchema,
              FieldAccessDescriptor fieldAccessDescriptor) | 
| static RowSelector | getRowSelectorOptimized(Schema inputSchema,
                       FieldAccessDescriptor fieldAccessDescriptor) | 
public static final SerializableFunction<java.util.List<java.lang.String>,java.lang.String> CONCAT_FIELD_NAMES
public static final SerializableFunction<java.util.List<java.lang.String>,java.lang.String> KEEP_NESTED_NAME
public static Schema getOutputSchema(Schema inputSchema, FieldAccessDescriptor fieldAccessDescriptor)
FieldAccessDescriptor from the
 given schema.
 Fields are always extracted and then stored in a new Row. For example, consider the following Java POJOs:
  class UserEvent {
    String userId;
    String eventId;
    int eventType;
    Location location;
 }
 
 class Location {
   double latitude;
   double longitude;
 }
 If selecting just the location field, then the returned schema will wrap that of the singular field being selected; in this case the returned schema will be a Row containing a single Location field. If location.latitude is selected, then the returned Schema will be a Row containing a double latitude field.
The same holds true when selecting from lists or maps. For example:
 class EventList {
   List<UserEvent> events;
 }
 If selecting events.location.latitude, the returned schema will contain a single array of Row, where that Row contains a single double latitude field; it will not contain an array of double.
public static RowSelector getRowSelectorOptimized(Schema inputSchema, FieldAccessDescriptor fieldAccessDescriptor)
public static RowSelector getRowSelector(Schema inputSchema, FieldAccessDescriptor fieldAccessDescriptor)
public static FieldAccessDescriptor allLeavesDescriptor(Schema schema, SerializableFunction<java.util.List<java.lang.String>,java.lang.String> nameFn)