public class SchemaUtils
extends Object
TODO: Merge this file with SchemaUtils
.
Constructor and Description |
---|
SchemaUtils() |
Modifier and Type | Method and Description |
---|---|
static void |
checkColumnNameDuplication(scala.collection.Seq<String> columnNames,
boolean caseSensitiveAnalysis)
Checks if input column names have duplicate identifiers.
|
static void |
checkColumnNameDuplication(scala.collection.Seq<String> columnNames,
scala.Function2<String,String,Object> resolver)
Checks if input column names have duplicate identifiers.
|
static void |
checkSchemaColumnNameDuplication(DataType schema,
boolean caseSensitiveAnalysis)
Checks if an input schema has duplicate column names.
|
static void |
checkSchemaColumnNameDuplication(StructType schema,
scala.Function2<String,String,Object> resolver)
Checks if an input schema has duplicate column names.
|
static void |
checkTransformDuplication(scala.collection.Seq<Transform> transforms,
String checkType,
boolean isCaseSensitive)
Checks if the partitioning transforms are being duplicated or not.
|
static String |
escapeMetaCharacters(String str) |
static scala.collection.Seq<String> |
explodeNestedFieldNames(StructType schema)
Returns all column names in this schema as a flat list.
|
static scala.collection.Seq<Object> |
findColumnPosition(scala.collection.Seq<String> column,
StructType schema,
scala.Function2<String,String,Object> resolver)
Returns the given column's ordinal within the given
schema . |
static scala.collection.Seq<String> |
getColumnName(scala.collection.Seq<Object> position,
StructType schema)
Gets the name of the column in the given position.
|
static scala.collection.Seq<org.apache.spark.sql.catalyst.expressions.NamedExpression> |
restoreOriginalOutputNames(scala.collection.Seq<org.apache.spark.sql.catalyst.expressions.NamedExpression> projectList,
scala.collection.Seq<String> originalNames) |
public static void checkSchemaColumnNameDuplication(DataType schema, boolean caseSensitiveAnalysis)
schema
- schema to checkcaseSensitiveAnalysis
- whether duplication checks should be case sensitive or notpublic static void checkSchemaColumnNameDuplication(StructType schema, scala.Function2<String,String,Object> resolver)
schema
- schema to checkresolver
- resolver used to determine if two identifiers are equalpublic static void checkColumnNameDuplication(scala.collection.Seq<String> columnNames, scala.Function2<String,String,Object> resolver)
columnNames
- column names to checkresolver
- resolver used to determine if two identifiers are equalpublic static void checkColumnNameDuplication(scala.collection.Seq<String> columnNames, boolean caseSensitiveAnalysis)
columnNames
- column names to checkcaseSensitiveAnalysis
- whether duplication checks should be case sensitive or notpublic static scala.collection.Seq<String> explodeNestedFieldNames(StructType schema)
schema
- (undocumented)public static void checkTransformDuplication(scala.collection.Seq<Transform> transforms, String checkType, boolean isCaseSensitive)
transforms
- the schema to check for duplicatescheckType
- contextual information around the check, used in an exception messageisCaseSensitive
- Whether to be case sensitive when comparing column namespublic static scala.collection.Seq<Object> findColumnPosition(scala.collection.Seq<String> column, StructType schema, scala.Function2<String,String,Object> resolver)
schema
. The length of the returned
position will be as long as how nested the column is.
column
- The column to search for in the given struct. If the length of column
is
greater than 1, we expect to enter a nested field.schema
- The current struct we are looking at.resolver
- The resolver to find the column.public static scala.collection.Seq<String> getColumnName(scala.collection.Seq<Object> position, StructType schema)
position
- (undocumented)schema
- (undocumented)public static scala.collection.Seq<org.apache.spark.sql.catalyst.expressions.NamedExpression> restoreOriginalOutputNames(scala.collection.Seq<org.apache.spark.sql.catalyst.expressions.NamedExpression> projectList, scala.collection.Seq<String> originalNames)
public static String escapeMetaCharacters(String str)
str
- The string to be escaped.