Package org.apache.sysds.api.mlcontext
Class MLContextUtil
- java.lang.Object
-
- org.apache.sysds.api.mlcontext.MLContextUtil
-
public final class MLContextUtil extends Object
Utility class containing methods for working with the MLContext API.
-
-
Field Summary
Fields Modifier and Type Field Description static Class[]
ALL_SUPPORTED_DATA_TYPES
All data types supported by the MLContext API.static Class[]
BASIC_DATA_TYPES
Basic data types supported by the MLContext API.static String
BUILD_TIME_NOT_AVAILABLE
Build time not available message.static Class[]
COMPLEX_DATA_TYPES
Complex data types supported by the MLContext API.static String
VERSION_NOT_AVAILABLE
Version not available message.
-
Constructor Summary
Constructors Constructor Description MLContextUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
checkInputParameterType(String parameterName, Object parameterValue)
Verify that the type of input parameter value is supported.static void
checkInputValueType(String name, Object value)
Verify that the type of input value is supported.static void
checkInputValueTypes(Map<String,Object> inputs)
Verify that the types of input values are supported.static Map<String,String>
convertInputParametersForParser(Map<String,Object> basicInputParameterMap)
Converts non-string basic input parameter values to strings to pass to the parser.static Data
convertInputType(String parameterName, Object parameterValue)
Convert input types to internal SystemDS representationsstatic Data
convertInputType(String parameterName, Object parameterValue, Metadata metadata)
Convert input types to internal SystemDS representationsstatic void
deleteRemoveVariableInstructions(Program progam)
Delete the 'remove variable' instructions from a runtime program.static String
determineOutputTypeAsString(LocalVariableMap symbolTable, String outputName)
Obtain a symbol table output type as a Stringstatic String
displayInputs(String name, Map<String,Object> map, LocalVariableMap symbolTable)
Obtain a display of script inputs.static String
displayMap(String mapName, Map<String,Object> map)
Display the keys and values in a Mapstatic String
displayOutputs(String name, Set<String> outputNames, LocalVariableMap symbolTable)
Obtain a display of the script outputs.static String
displayOutputs(Set<String> outputNames, LocalVariableMap symbolTable)
Obtain a display of the script outputs.static String
displaySet(String setName, Set<String> set)
Display the values in a Setstatic String
displaySymbolTable(String name, LocalVariableMap symbolTable)
Display the keys and values in the symbol tablestatic String
displaySymbolTable(LocalVariableMap symbolTable)
Display the keys and values in the symbol tablestatic boolean
doesDataFrameLookLikeMatrix(org.apache.spark.sql.Dataset<org.apache.spark.sql.Row> df)
Examine the DataFrame schema to determine whether the data appears to be a matrix.static boolean
doesSymbolTableContainFrameObject(LocalVariableMap symbolTable, String variableName)
Determine if the symbol table contains a FrameObject with the given variable name.static boolean
doesSymbolTableContainMatrixObject(LocalVariableMap symbolTable, String variableName)
Determine if the symbol table contains a MatrixObject with the given variable name.static String
getBasicTypeString(Object object)
Obtain the SystemDS scalar value type string equivalent of an accepted basic type (Integer, Boolean, Double, String)static org.apache.spark.api.java.JavaSparkContext
getJavaSparkContext(MLContext mlContext)
Obtain the Java Spark Contextstatic org.apache.spark.api.java.JavaSparkContext
getJavaSparkContextFromProxy()
Obtain the Java Spark Context from the MLContextProxystatic org.apache.spark.SparkContext
getSparkContext(MLContext mlContext)
Obtain the Spark Contextstatic org.apache.spark.SparkContext
getSparkContextFromProxy()
Obtain the Spark Context from the MLContextProxystatic org.apache.spark.sql.SparkSession
getSparkSessionFromProxy()
Obtain the Spark Session from the MLContextProxystatic boolean
isBasicType(Object object)
Is the object one of the supported basic data types? (Integer, Boolean, Double, String)static boolean
isComplexType(Object object)
Is the object one of the supported complex data types? (JavaRDD, RDD, DataFrame, Matrix, double[][], MatrixBlock, URL)static boolean
isCSVLineAllNumbers(String line)
If no metadata is supplied for an RDD or JavaRDD, this method can be used to determine whether the data appears to be matrix (or a frame)static boolean
isSparkVersionSupported(String sparkVersion, String minimumRecommendedSparkVersion)
Determine whether the Spark version is supported.static String
quotedString(String str)
Return a double-quoted string with inner single and double quotes escaped.static void
setCompilerConfig()
Set SystemDS compiler configuration properties for MLContextstatic void
setConfig(String configFilePath)
Set SystemDS configuration properties based on a configuration file.static void
setDefaultConfig()
Set default SystemDS configuration properties.static void
verifySparkVersionSupported(org.apache.spark.sql.SparkSession spark)
Check that the Spark version is supported.static String
welcomeMessage()
The SystemDS welcome message
-
-
-
Field Detail
-
VERSION_NOT_AVAILABLE
public static final String VERSION_NOT_AVAILABLE
Version not available message.- See Also:
- Constant Field Values
-
BUILD_TIME_NOT_AVAILABLE
public static final String BUILD_TIME_NOT_AVAILABLE
Build time not available message.- See Also:
- Constant Field Values
-
BASIC_DATA_TYPES
public static final Class[] BASIC_DATA_TYPES
Basic data types supported by the MLContext API.
-
COMPLEX_DATA_TYPES
public static final Class[] COMPLEX_DATA_TYPES
Complex data types supported by the MLContext API.
-
ALL_SUPPORTED_DATA_TYPES
public static final Class[] ALL_SUPPORTED_DATA_TYPES
All data types supported by the MLContext API.
-
-
Method Detail
-
isSparkVersionSupported
public static boolean isSparkVersionSupported(String sparkVersion, String minimumRecommendedSparkVersion)
Determine whether the Spark version is supported.- Parameters:
sparkVersion
- Spark version string (ie, "1.5.0").minimumRecommendedSparkVersion
- Minimum recommended Spark version string (ie, "2.1.0").- Returns:
true
if Spark version supported; otherwisefalse
.
-
verifySparkVersionSupported
public static void verifySparkVersionSupported(org.apache.spark.sql.SparkSession spark)
Check that the Spark version is supported. If it isn't supported, throw an MLContextException.- Parameters:
spark
- SparkSession- Throws:
MLContextException
- thrown if Spark version isn't supported
-
setDefaultConfig
public static void setDefaultConfig()
Set default SystemDS configuration properties.
-
setConfig
public static void setConfig(String configFilePath)
Set SystemDS configuration properties based on a configuration file.- Parameters:
configFilePath
- Path to configuration file.- Throws:
MLContextException
- if configuration file was not found or a parse exception occurred
-
setCompilerConfig
public static void setCompilerConfig()
Set SystemDS compiler configuration properties for MLContext
-
checkInputValueTypes
public static void checkInputValueTypes(Map<String,Object> inputs)
Verify that the types of input values are supported.- Parameters:
inputs
- Map of String/Object pairs- Throws:
MLContextException
- if an input value type is not supported
-
checkInputValueType
public static void checkInputValueType(String name, Object value)
Verify that the type of input value is supported.- Parameters:
name
- The name of the inputvalue
- The value of the input- Throws:
MLContextException
- if the input value type is not supported
-
checkInputParameterType
public static void checkInputParameterType(String parameterName, Object parameterValue)
Verify that the type of input parameter value is supported.- Parameters:
parameterName
- The name of the input parameterparameterValue
- The value of the input parameter- Throws:
MLContextException
- if the input parameter value type is not supported
-
isBasicType
public static boolean isBasicType(Object object)
Is the object one of the supported basic data types? (Integer, Boolean, Double, String)- Parameters:
object
- the object type to be examined- Returns:
true
if type is a basic data type; otherwisefalse
.
-
getBasicTypeString
public static String getBasicTypeString(Object object)
Obtain the SystemDS scalar value type string equivalent of an accepted basic type (Integer, Boolean, Double, String)- Parameters:
object
- the object type to be examined- Returns:
- a String representing the type as a SystemDS scalar value type
-
isComplexType
public static boolean isComplexType(Object object)
Is the object one of the supported complex data types? (JavaRDD, RDD, DataFrame, Matrix, double[][], MatrixBlock, URL)- Parameters:
object
- the object type to be examined- Returns:
true
if type is a complex data type; otherwisefalse
.
-
convertInputParametersForParser
public static Map<String,String> convertInputParametersForParser(Map<String,Object> basicInputParameterMap)
Converts non-string basic input parameter values to strings to pass to the parser.- Parameters:
basicInputParameterMap
- map of input parameters- Returns:
- map of String/String name/value pairs
-
convertInputType
public static Data convertInputType(String parameterName, Object parameterValue)
Convert input types to internal SystemDS representations- Parameters:
parameterName
- The name of the input parameterparameterValue
- The value of the input parameter- Returns:
- input in SystemDS data representation
-
convertInputType
public static Data convertInputType(String parameterName, Object parameterValue, Metadata metadata)
Convert input types to internal SystemDS representations- Parameters:
parameterName
- The name of the input parameterparameterValue
- The value of the input parametermetadata
- matrix/frame metadata- Returns:
- input in SystemDS data representation
-
isCSVLineAllNumbers
public static boolean isCSVLineAllNumbers(String line)
If no metadata is supplied for an RDD or JavaRDD, this method can be used to determine whether the data appears to be matrix (or a frame)- Parameters:
line
- a line of the RDD- Returns:
true
if all the csv-separated values are numbers,false
otherwise
-
doesDataFrameLookLikeMatrix
public static boolean doesDataFrameLookLikeMatrix(org.apache.spark.sql.Dataset<org.apache.spark.sql.Row> df)
Examine the DataFrame schema to determine whether the data appears to be a matrix.- Parameters:
df
- the DataFrame- Returns:
true
if the DataFrame appears to be a matrix,false
otherwise
-
quotedString
public static String quotedString(String str)
Return a double-quoted string with inner single and double quotes escaped.- Parameters:
str
- the original string- Returns:
- double-quoted string with inner single and double quotes escaped
-
displayMap
public static String displayMap(String mapName, Map<String,Object> map)
Display the keys and values in a Map- Parameters:
mapName
- the name of the mapmap
- Map of String keys and Object values- Returns:
- the keys and values in the Map as a String
-
displaySet
public static String displaySet(String setName, Set<String> set)
Display the values in a Set- Parameters:
setName
- the name of the Setset
- Set of String values- Returns:
- the values in the Set as a String
-
displaySymbolTable
public static String displaySymbolTable(String name, LocalVariableMap symbolTable)
Display the keys and values in the symbol table- Parameters:
name
- the name of the symbol tablesymbolTable
- the LocalVariableMap- Returns:
- the keys and values in the symbol table as a String
-
displaySymbolTable
public static String displaySymbolTable(LocalVariableMap symbolTable)
Display the keys and values in the symbol table- Parameters:
symbolTable
- the LocalVariableMap- Returns:
- the keys and values in the symbol table as a String
-
determineOutputTypeAsString
public static String determineOutputTypeAsString(LocalVariableMap symbolTable, String outputName)
Obtain a symbol table output type as a String- Parameters:
symbolTable
- the symbol tableoutputName
- the name of the output variable- Returns:
- the symbol table output type for a variable as a String
-
displayInputs
public static String displayInputs(String name, Map<String,Object> map, LocalVariableMap symbolTable)
Obtain a display of script inputs.- Parameters:
name
- the title to display for the inputsmap
- the map of inputssymbolTable
- the symbol table- Returns:
- the script inputs represented as a String
-
displayOutputs
public static String displayOutputs(String name, Set<String> outputNames, LocalVariableMap symbolTable)
Obtain a display of the script outputs.- Parameters:
name
- the title to display for the outputsoutputNames
- the names of the output variablessymbolTable
- the symbol table- Returns:
- the script outputs represented as a String
-
displayOutputs
public static String displayOutputs(Set<String> outputNames, LocalVariableMap symbolTable)
Obtain a display of the script outputs.- Parameters:
outputNames
- the names of the output variablessymbolTable
- the symbol table- Returns:
- the script outputs represented as a String
-
welcomeMessage
public static String welcomeMessage()
The SystemDS welcome message- Returns:
- the SystemDS welcome message
-
getSparkContext
public static org.apache.spark.SparkContext getSparkContext(MLContext mlContext)
Obtain the Spark Context- Parameters:
mlContext
- the SystemDS MLContext- Returns:
- the Spark Context
-
getJavaSparkContext
public static org.apache.spark.api.java.JavaSparkContext getJavaSparkContext(MLContext mlContext)
Obtain the Java Spark Context- Parameters:
mlContext
- the SystemDS MLContext- Returns:
- the Java Spark Context
-
getSparkContextFromProxy
public static org.apache.spark.SparkContext getSparkContextFromProxy()
Obtain the Spark Context from the MLContextProxy- Returns:
- the Spark Context
-
getJavaSparkContextFromProxy
public static org.apache.spark.api.java.JavaSparkContext getJavaSparkContextFromProxy()
Obtain the Java Spark Context from the MLContextProxy- Returns:
- the Java Spark Context
-
getSparkSessionFromProxy
public static org.apache.spark.sql.SparkSession getSparkSessionFromProxy()
Obtain the Spark Session from the MLContextProxy- Returns:
- the Spark Session
-
doesSymbolTableContainFrameObject
public static boolean doesSymbolTableContainFrameObject(LocalVariableMap symbolTable, String variableName)
Determine if the symbol table contains a FrameObject with the given variable name.- Parameters:
symbolTable
- the LocalVariableMapvariableName
- the variable name- Returns:
true
if the variable in the symbol table is a FrameObject,false
otherwise.
-
doesSymbolTableContainMatrixObject
public static boolean doesSymbolTableContainMatrixObject(LocalVariableMap symbolTable, String variableName)
Determine if the symbol table contains a MatrixObject with the given variable name.- Parameters:
symbolTable
- the LocalVariableMapvariableName
- the variable name- Returns:
true
if the variable in the symbol table is a MatrixObject,false
otherwise.
-
deleteRemoveVariableInstructions
public static void deleteRemoveVariableInstructions(Program progam)
Delete the 'remove variable' instructions from a runtime program.- Parameters:
progam
- runtime program
-
-