Package org.apache.druid.data.input.impl
Class JsonInputFormat
java.lang.Object
org.apache.druid.data.input.impl.NestedInputFormat
org.apache.druid.data.input.impl.JsonInputFormat
- All Implemented Interfaces:
InputFormat
-
Field Summary
FieldsFields inherited from interface org.apache.druid.data.input.InputFormat
TYPE_PROPERTY -
Constructor Summary
ConstructorsConstructorDescriptionJsonInputFormat(JSONPathSpec flattenSpec, Map<String, Boolean> featureSpec, Boolean keepNullColumns, boolean lineSplittable, Boolean assumeNewlineDelimited, Boolean useJsonNodeReader) JsonInputFormat(JSONPathSpec flattenSpec, Map<String, Boolean> featureSpec, Boolean keepNullColumns, Boolean assumeNewlineDelimited, Boolean useJsonNodeReader) -
Method Summary
Modifier and TypeMethodDescriptioncreateReader(InputRowSchema inputRowSchema, InputEntity source, File temporaryDirectory) booleanlonggetWeightedSize(String path, long size) Computes the weighted size of a given input object of the underyling input format type, weighted for its cost during ingestion.inthashCode()booleanbooleanbooleanTrait to indicate that a file can be split into multipleInputSplits.booleantoString()withLineSplittable(boolean lineSplittable) Create a new JsonInputFormat object based on the given parameter sub-classes may need to override this method to create an object with correct sub-class typestatic InputFormatwithLineSplittable(InputFormat format, boolean lineSplittable) If the provided format isJsonInputFormat, return a version withwithLineSplittable(boolean)called.Methods inherited from class org.apache.druid.data.input.impl.NestedInputFormat
getFlattenSpecMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.druid.data.input.InputFormat
createRowAdapter
-
Field Details
-
TYPE_KEY
- See Also:
-
-
Constructor Details
-
JsonInputFormat
-
JsonInputFormat
-
-
Method Details
-
getFeatureSpec
-
isKeepNullColumns
public boolean isKeepNullColumns() -
isAssumeNewlineDelimited
public boolean isAssumeNewlineDelimited() -
isUseJsonNodeReader
public boolean isUseJsonNodeReader() -
isSplittable
public boolean isSplittable()Description copied from interface:InputFormatTrait to indicate that a file can be split into multipleInputSplits.This method is not being used anywhere for now, but should be considered in
SplittableInputSource.createSplits(org.apache.druid.data.input.InputFormat, org.apache.druid.data.input.SplitHintSpec)in the future. -
createReader
public InputEntityReader createReader(InputRowSchema inputRowSchema, InputEntity source, File temporaryDirectory) -
getWeightedSize
Description copied from interface:InputFormatComputes the weighted size of a given input object of the underyling input format type, weighted for its cost during ingestion. The weight calculated is dependent on the format type and compression type (CompressionUtils.Format) used if any. Uncompressed newline delimited json is used as baseline with scale factor 1. This means that when computing the byte weight that an uncompressed newline delimited json input object has towards ingestion, we take the file size as is, 1:1.- Parameters:
path- The path of the input object. Used to tell whether any compression is used.size- The size of the input object in bytes.- Returns:
- The weighted size of the input object.
-
withLineSplittable
Create a new JsonInputFormat object based on the given parameter sub-classes may need to override this method to create an object with correct sub-class type -
equals
- Overrides:
equalsin classNestedInputFormat
-
hashCode
public int hashCode()- Overrides:
hashCodein classNestedInputFormat
-
toString
-
withLineSplittable
If the provided format isJsonInputFormat, return a version withwithLineSplittable(boolean)called. Otherwise return the provided format itself. This is a hack in order to get the same "json" input format to useJsonReaderby default for streaming ingestion, andJsonLineReaderby default for batch file-based ingestion.
-