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_ARRAY
static org.apache.flink.table.data.binary.BinaryStringData
FALSE_STRING
static org.apache.flink.table.data.binary.BinaryStringData
NULL_STRING
static org.apache.flink.table.data.binary.BinaryStringData
TRUE_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.BinaryStringData
concat(Iterable<org.apache.flink.table.data.binary.BinaryStringData> inputs)
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.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)
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.static org.apache.flink.table.data.binary.BinaryStringData
hash(byte[] bytes, MessageDigest md)
Calculate the hash value of the given bytes useMessageDigest
.static org.apache.flink.table.data.binary.BinaryStringData
hash(org.apache.flink.table.data.binary.BinaryStringData str, String algorithm)
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
.static boolean
isEmpty(org.apache.flink.table.data.binary.BinaryStringData str)
static boolean
isSpaceString(org.apache.flink.table.data.binary.BinaryStringData str)
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.static org.apache.flink.table.data.binary.BinaryStringData
reverse(org.apache.flink.table.data.binary.BinaryStringData str)
Reverse each character in current string.static String
safeToString(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.BinaryStringData
substringSQL(org.apache.flink.table.data.binary.BinaryStringData str, int pos)
static org.apache.flink.table.data.binary.BinaryStringData
substringSQL(org.apache.flink.table.data.binary.BinaryStringData str, int pos, int length)
static boolean
toBoolean(org.apache.flink.table.data.binary.BinaryStringData str)
Parse aStringData
to boolean.static byte
toByte(org.apache.flink.table.data.binary.BinaryStringData str)
static int
toDate(org.apache.flink.table.data.binary.BinaryStringData input)
static org.apache.flink.table.data.DecimalData
toDecimal(org.apache.flink.table.data.binary.BinaryStringData str, int precision, int scale)
Parses aBinaryStringData
toDecimalData
.static double
toDouble(org.apache.flink.table.data.binary.BinaryStringData str)
static float
toFloat(org.apache.flink.table.data.binary.BinaryStringData str)
static int
toInt(org.apache.flink.table.data.binary.BinaryStringData str)
Parses this BinaryStringData to Int.static long
toLong(org.apache.flink.table.data.binary.BinaryStringData str)
Parses this BinaryStringData to Long.static short
toShort(org.apache.flink.table.data.binary.BinaryStringData str)
static int
toTime(org.apache.flink.table.data.binary.BinaryStringData input)
static org.apache.flink.table.data.TimestampData
toTimestamp(org.apache.flink.table.data.binary.BinaryStringData input, int precision)
Used byCAST(x as TIMESTAMP)
.static org.apache.flink.table.data.TimestampData
toTimestamp(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.BinaryStringData
trim(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.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.static org.apache.flink.table.data.binary.BinaryStringData
trimLeft(org.apache.flink.table.data.binary.BinaryStringData str)
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.static org.apache.flink.table.data.binary.BinaryStringData
trimRight(org.apache.flink.table.data.binary.BinaryStringData str)
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.
-
-
-
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
null
separator 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,null
splits on whitespace- Returns:
- an array of parsed Strings,
null
if null String was input
-
toBoolean
public static boolean toBoolean(org.apache.flink.table.data.binary.BinaryStringData str) throws org.apache.flink.table.api.TableException
Parse aStringData
to 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 NumberFormatException
Parses aBinaryStringData
toDecimalData
.- Returns:
- DecimalData value if the parsing was successful.
- Throws:
NumberFormatException
-
toLong
public static long toLong(org.apache.flink.table.data.binary.BinaryStringData str) throws NumberFormatException
Parses 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 NumberFormatException
Parses 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 DateTimeException
Used 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 DateTimeException
Used 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)
-
-