Class BinaryStringDataUtil
- java.lang.Object
-
- org.apache.flink.table.data.binary.BinaryStringDataUtil
-
public class BinaryStringDataUtil extends Object
Util forBinaryStringData.
-
-
Field Summary
Fields Modifier and Type Field Description static org.apache.flink.table.data.binary.BinaryStringData[]EMPTY_STRING_ARRAYstatic org.apache.flink.table.data.binary.BinaryStringDataFALSE_STRINGstatic org.apache.flink.table.data.binary.BinaryStringDataNULL_STRINGstatic org.apache.flink.table.data.binary.BinaryStringDataTRUE_STRING
-
Constructor Summary
Constructors Constructor Description BinaryStringDataUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static org.apache.flink.table.data.binary.BinaryStringDataconcat(Iterable<org.apache.flink.table.data.binary.BinaryStringData> inputs)static org.apache.flink.table.data.binary.BinaryStringDataconcat(org.apache.flink.table.data.binary.BinaryStringData... inputs)Concatenates input strings together into a single string.static org.apache.flink.table.data.binary.BinaryStringDataconcatWs(org.apache.flink.table.data.binary.BinaryStringData separator, Iterable<org.apache.flink.table.data.binary.BinaryStringData> inputs)static org.apache.flink.table.data.binary.BinaryStringDataconcatWs(org.apache.flink.table.data.binary.BinaryStringData separator, org.apache.flink.table.data.binary.BinaryStringData... inputs)Concatenates input strings together into a single string using the separator.static org.apache.flink.table.data.binary.BinaryStringDatahash(byte[] bytes, MessageDigest md)Calculate the hash value of the given bytes useMessageDigest.static org.apache.flink.table.data.binary.BinaryStringDatahash(org.apache.flink.table.data.binary.BinaryStringData str, String algorithm)static org.apache.flink.table.data.binary.BinaryStringDatahash(org.apache.flink.table.data.binary.BinaryStringData str, MessageDigest md)Calculate the hash value of a given string useMessageDigest.static booleanisEmpty(org.apache.flink.table.data.binary.BinaryStringData str)static booleanisSpaceString(org.apache.flink.table.data.binary.BinaryStringData str)static org.apache.flink.table.data.binary.BinaryStringDatakeyValue(org.apache.flink.table.data.binary.BinaryStringData str, byte split1, byte split2, org.apache.flink.table.data.binary.BinaryStringData keyName)Parse target string as key-value string and return the value matches key name.static org.apache.flink.table.data.binary.BinaryStringDatareverse(org.apache.flink.table.data.binary.BinaryStringData str)Reverse each character in current string.static StringsafeToString(org.apache.flink.table.data.binary.BinaryStringData str)static org.apache.flink.table.data.binary.BinaryStringData[]splitByWholeSeparatorPreserveAllTokens(org.apache.flink.table.data.binary.BinaryStringData str, org.apache.flink.table.data.binary.BinaryStringData separator)Splits the provided text into an array, separator string specified.static org.apache.flink.table.data.binary.BinaryStringDatasubstringSQL(org.apache.flink.table.data.binary.BinaryStringData str, int pos)static org.apache.flink.table.data.binary.BinaryStringDatasubstringSQL(org.apache.flink.table.data.binary.BinaryStringData str, int pos, int length)static booleantoBoolean(org.apache.flink.table.data.binary.BinaryStringData str)Parse aStringDatato boolean.static bytetoByte(org.apache.flink.table.data.binary.BinaryStringData str)static inttoDate(org.apache.flink.table.data.binary.BinaryStringData input)static org.apache.flink.table.data.DecimalDatatoDecimal(org.apache.flink.table.data.binary.BinaryStringData str, int precision, int scale)Parses aBinaryStringDatatoDecimalData.static doubletoDouble(org.apache.flink.table.data.binary.BinaryStringData str)static floattoFloat(org.apache.flink.table.data.binary.BinaryStringData str)static inttoInt(org.apache.flink.table.data.binary.BinaryStringData str)Parses this BinaryStringData to Int.static longtoLong(org.apache.flink.table.data.binary.BinaryStringData str)Parses this BinaryStringData to Long.static shorttoShort(org.apache.flink.table.data.binary.BinaryStringData str)static inttoTime(org.apache.flink.table.data.binary.BinaryStringData input)static org.apache.flink.table.data.TimestampDatatoTimestamp(org.apache.flink.table.data.binary.BinaryStringData input, int precision)Used byCAST(x as TIMESTAMP).static org.apache.flink.table.data.TimestampDatatoTimestamp(org.apache.flink.table.data.binary.BinaryStringData input, int precision, TimeZone timeZone)Used byCAST(x as TIMESTAMP_LTZ).static org.apache.flink.table.data.binary.BinaryStringDatatrim(org.apache.flink.table.data.binary.BinaryStringData str, boolean leading, boolean trailing, org.apache.flink.table.data.binary.BinaryStringData seek)static org.apache.flink.table.data.binary.BinaryStringDatatrim(org.apache.flink.table.data.binary.BinaryStringData str, org.apache.flink.table.data.binary.BinaryStringData trimStr)Walk each character of current string from both ends, remove the character if it is in trim string.static org.apache.flink.table.data.binary.BinaryStringDatatrimLeft(org.apache.flink.table.data.binary.BinaryStringData str)static org.apache.flink.table.data.binary.BinaryStringDatatrimLeft(org.apache.flink.table.data.binary.BinaryStringData str, org.apache.flink.table.data.binary.BinaryStringData trimStr)Walk each character of current string from left end, remove the character if it is in trim string.static org.apache.flink.table.data.binary.BinaryStringDatatrimRight(org.apache.flink.table.data.binary.BinaryStringData str)static org.apache.flink.table.data.binary.BinaryStringDatatrimRight(org.apache.flink.table.data.binary.BinaryStringData str, org.apache.flink.table.data.binary.BinaryStringData trimStr)Walk each character of current string from right end, remove the character if it is in trim string.
-
-
-
Field Detail
-
NULL_STRING
public static final org.apache.flink.table.data.binary.BinaryStringData NULL_STRING
-
TRUE_STRING
public static final org.apache.flink.table.data.binary.BinaryStringData TRUE_STRING
-
FALSE_STRING
public static final org.apache.flink.table.data.binary.BinaryStringData FALSE_STRING
-
EMPTY_STRING_ARRAY
public static final org.apache.flink.table.data.binary.BinaryStringData[] EMPTY_STRING_ARRAY
-
-
Method Detail
-
splitByWholeSeparatorPreserveAllTokens
public static org.apache.flink.table.data.binary.BinaryStringData[] splitByWholeSeparatorPreserveAllTokens(org.apache.flink.table.data.binary.BinaryStringData str, org.apache.flink.table.data.binary.BinaryStringData separator)Splits the provided text into an array, separator string specified.The separator is not included in the returned String array. Adjacent separators are treated as separators for empty tokens.
A
nullseparator splits on whitespace."".splitByWholeSeparatorPreserveAllTokens(*) = [] "ab de fg".splitByWholeSeparatorPreserveAllTokens(null) = ["ab", "de", "fg"] "ab de fg".splitByWholeSeparatorPreserveAllTokens(null) = ["ab", "", "", "de", "fg"] "ab:cd:ef".splitByWholeSeparatorPreserveAllTokens(":") = ["ab", "cd", "ef"] "ab-!-cd-!-ef".splitByWholeSeparatorPreserveAllTokens("-!-") = ["ab", "cd", "ef"]Note: returned binary strings reuse memory segments from the input str.
- Parameters:
separator- String containing the String to be used as a delimiter,nullsplits on whitespace- Returns:
- an array of parsed Strings,
nullif null String was input
-
toBoolean
public static boolean toBoolean(org.apache.flink.table.data.binary.BinaryStringData str) throws org.apache.flink.table.api.TableExceptionParse aStringDatato boolean.- Throws:
org.apache.flink.table.api.TableException
-
hash
public static org.apache.flink.table.data.binary.BinaryStringData hash(byte[] bytes, MessageDigest md)Calculate the hash value of the given bytes useMessageDigest.
-
hash
public static org.apache.flink.table.data.binary.BinaryStringData hash(org.apache.flink.table.data.binary.BinaryStringData str, MessageDigest md)Calculate the hash value of a given string useMessageDigest.
-
hash
public static org.apache.flink.table.data.binary.BinaryStringData hash(org.apache.flink.table.data.binary.BinaryStringData str, String algorithm) throws NoSuchAlgorithmException- Throws:
NoSuchAlgorithmException
-
toDecimal
public static org.apache.flink.table.data.DecimalData toDecimal(org.apache.flink.table.data.binary.BinaryStringData str, int precision, int scale) throws NumberFormatExceptionParses aBinaryStringDatatoDecimalData.- Returns:
- DecimalData value if the parsing was successful.
- Throws:
NumberFormatException
-
toLong
public static long toLong(org.apache.flink.table.data.binary.BinaryStringData str) throws NumberFormatExceptionParses this BinaryStringData to Long.Note that, in this method we accumulate the result in negative format, and convert it to positive format at the end, if this string is not started with '-'. This is because min value is bigger than max value in digits, e.g. Long.MAX_VALUE is '9223372036854775807' and Long.MIN_VALUE is '-9223372036854775808'.
This code is mostly copied from LazyLong.parseLong in Hive.
- Throws:
NumberFormatException
-
toInt
public static int toInt(org.apache.flink.table.data.binary.BinaryStringData str) throws NumberFormatExceptionParses this BinaryStringData to Int.Note that, in this method we accumulate the result in negative format, and convert it to positive format at the end, if this string is not started with '-'. This is because min value is bigger than max value in digits, e.g. Integer.MAX_VALUE is '2147483647' and Integer.MIN_VALUE is '-2147483648'.
This code is mostly copied from LazyInt.parseInt in Hive.
Note that, this method is almost same as `toLong`, but we leave it duplicated for performance reasons, like Hive does.
- Throws:
NumberFormatException
-
toShort
public static short toShort(org.apache.flink.table.data.binary.BinaryStringData str) throws NumberFormatException- Throws:
NumberFormatException
-
toByte
public static byte toByte(org.apache.flink.table.data.binary.BinaryStringData str) throws NumberFormatException- Throws:
NumberFormatException
-
toDouble
public static double toDouble(org.apache.flink.table.data.binary.BinaryStringData str) throws NumberFormatException- Throws:
NumberFormatException
-
toFloat
public static float toFloat(org.apache.flink.table.data.binary.BinaryStringData str) throws NumberFormatException- Throws:
NumberFormatException
-
toDate
public static int toDate(org.apache.flink.table.data.binary.BinaryStringData input) throws DateTimeException- Throws:
DateTimeException
-
toTime
public static int toTime(org.apache.flink.table.data.binary.BinaryStringData input) throws DateTimeException- Throws:
DateTimeException
-
toTimestamp
public static org.apache.flink.table.data.TimestampData toTimestamp(org.apache.flink.table.data.binary.BinaryStringData input, int precision) throws DateTimeExceptionUsed byCAST(x as TIMESTAMP).- Throws:
DateTimeException
-
toTimestamp
public static org.apache.flink.table.data.TimestampData toTimestamp(org.apache.flink.table.data.binary.BinaryStringData input, int precision, TimeZone timeZone) throws DateTimeExceptionUsed byCAST(x as TIMESTAMP_LTZ).- Throws:
DateTimeException
-
keyValue
public static org.apache.flink.table.data.binary.BinaryStringData keyValue(org.apache.flink.table.data.binary.BinaryStringData str, byte split1, byte split2, org.apache.flink.table.data.binary.BinaryStringData keyName)Parse target string as key-value string and return the value matches key name. If accept any null arguments, return null. example: keyvalue('k1=v1;k2=v2', ';', '=', 'k2') = 'v2' keyvalue('k1:v1,k2:v2', ',', ':', 'k3') = NULL- Parameters:
split1- separator between key-value tuple.split2- separator between key and value.keyName- name of the key whose value you want return.- Returns:
- target value.
-
substringSQL
public static org.apache.flink.table.data.binary.BinaryStringData substringSQL(org.apache.flink.table.data.binary.BinaryStringData str, int pos)
-
substringSQL
public static org.apache.flink.table.data.binary.BinaryStringData substringSQL(org.apache.flink.table.data.binary.BinaryStringData str, int pos, int length)
-
concat
public static org.apache.flink.table.data.binary.BinaryStringData concat(org.apache.flink.table.data.binary.BinaryStringData... inputs)
Concatenates input strings together into a single string. Returns NULL if any argument is NULL.
-
concat
public static org.apache.flink.table.data.binary.BinaryStringData concat(Iterable<org.apache.flink.table.data.binary.BinaryStringData> inputs)
-
concatWs
public static org.apache.flink.table.data.binary.BinaryStringData concatWs(org.apache.flink.table.data.binary.BinaryStringData separator, org.apache.flink.table.data.binary.BinaryStringData... inputs)Concatenates input strings together into a single string using the separator. Returns NULL If the separator is NULL.Note: CONCAT_WS() does not skip any empty strings, however it does skip any NULL values after the separator. For example, concat_ws(",", "a", null, "c") would yield "a,c".
-
concatWs
public static org.apache.flink.table.data.binary.BinaryStringData concatWs(org.apache.flink.table.data.binary.BinaryStringData separator, Iterable<org.apache.flink.table.data.binary.BinaryStringData> inputs)
-
reverse
public static org.apache.flink.table.data.binary.BinaryStringData reverse(org.apache.flink.table.data.binary.BinaryStringData str)
Reverse each character in current string.- Returns:
- a new string which character order is reverse to current string.
-
trim
public static org.apache.flink.table.data.binary.BinaryStringData trim(org.apache.flink.table.data.binary.BinaryStringData str, org.apache.flink.table.data.binary.BinaryStringData trimStr)Walk each character of current string from both ends, remove the character if it is in trim string. Return the new substring which both ends trim characters have been removed.- Parameters:
trimStr- the trim string- Returns:
- A subString which both ends trim characters have been removed.
-
trimLeft
public static org.apache.flink.table.data.binary.BinaryStringData trimLeft(org.apache.flink.table.data.binary.BinaryStringData str)
-
isEmpty
public static boolean isEmpty(org.apache.flink.table.data.binary.BinaryStringData str)
-
isSpaceString
public static boolean isSpaceString(org.apache.flink.table.data.binary.BinaryStringData str)
-
trimLeft
public static org.apache.flink.table.data.binary.BinaryStringData trimLeft(org.apache.flink.table.data.binary.BinaryStringData str, org.apache.flink.table.data.binary.BinaryStringData trimStr)Walk each character of current string from left end, remove the character if it is in trim string. Stops at the first character which is not in trim string. Return the new substring.- Parameters:
trimStr- the trim string- Returns:
- A subString which removes all of the character from the left side that is in trim string.
-
trimRight
public static org.apache.flink.table.data.binary.BinaryStringData trimRight(org.apache.flink.table.data.binary.BinaryStringData str)
-
trimRight
public static org.apache.flink.table.data.binary.BinaryStringData trimRight(org.apache.flink.table.data.binary.BinaryStringData str, org.apache.flink.table.data.binary.BinaryStringData trimStr)Walk each character of current string from right end, remove the character if it is in trim string. Stops at the first character which is not in trim string. Return the new substring.- Parameters:
trimStr- the trim string- Returns:
- A subString which removes all of the character from the right side that is in trim string.
-
trim
public static org.apache.flink.table.data.binary.BinaryStringData trim(org.apache.flink.table.data.binary.BinaryStringData str, boolean leading, boolean trailing, org.apache.flink.table.data.binary.BinaryStringData seek)
-
safeToString
public static String safeToString(org.apache.flink.table.data.binary.BinaryStringData str)
-
-