in Sources/SparkConnect/Extension.swift [68:100]
func toSparkConnectPlan(_ namedArguments: [String: Sendable]) -> Plan {
var sql = Spark_Connect_SQL()
sql.query = self
sql.namedArguments = namedArguments.mapValues { value in
var literal = ExpressionLiteral()
switch value {
case let value as Bool:
literal.boolean = value
case let value as Int8:
literal.byte = Int32(value)
case let value as Int16:
literal.short = Int32(value)
case let value as Int32:
literal.integer = value
case let value as Int64:
literal.long = value
case let value as Int:
literal.long = Int64(value)
case let value as String:
literal.string = value
default:
literal.string = value as! String
}
var expr = Spark_Connect_Expression()
expr.literal = literal
return expr
}
var relation = Relation()
relation.sql = sql
var plan = Plan()
plan.opType = Plan.OneOf_OpType.root(relation)
return plan
}