spark/sql/utils/consts.go (106 lines of code) (raw):
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package utils
import proto "github.com/apache/spark-connect-go/v35/internal/generated"
type ExplainMode int
const (
ExplainModeSimple ExplainMode = iota
ExplainModeExtended ExplainMode = iota
ExplainModeCodegen ExplainMode = iota
ExplainModeCost ExplainMode = iota
ExplainModeFormatted ExplainMode = iota
)
type StorageLevel int
const (
StorageLevelDiskOnly StorageLevel = iota
StorageLevelDiskOnly2 StorageLevel = iota
StorageLevelDiskOnly3 StorageLevel = iota
StorageLevelMemoryAndDisk StorageLevel = iota
StorageLevelMemoryAndDisk2 StorageLevel = iota
StorageLevelMemoryOnly StorageLevel = iota
StorageLevelMemoryOnly2 StorageLevel = iota
StorageLevelMemoyAndDiskDeser StorageLevel = iota
StorageLevelNone StorageLevel = iota
StorageLevelOffHeap StorageLevel = iota
)
func ToProtoStorageLevel(level StorageLevel) *proto.StorageLevel {
switch level {
case StorageLevelDiskOnly:
return &proto.StorageLevel{UseDisk: true, UseMemory: false, Replication: 1}
case StorageLevelDiskOnly2:
return &proto.StorageLevel{UseDisk: true, UseMemory: false, Replication: 2}
case StorageLevelDiskOnly3:
return &proto.StorageLevel{UseDisk: true, UseMemory: false, Replication: 3}
case StorageLevelMemoryAndDisk:
return &proto.StorageLevel{UseDisk: true, UseMemory: true, Replication: 1}
case StorageLevelMemoryAndDisk2:
return &proto.StorageLevel{UseDisk: true, UseMemory: true, Replication: 2}
case StorageLevelMemoryOnly:
return &proto.StorageLevel{UseDisk: false, UseMemory: true, Replication: 1}
case StorageLevelMemoryOnly2:
return &proto.StorageLevel{UseDisk: false, UseMemory: true, Replication: 2}
case StorageLevelMemoyAndDiskDeser:
return &proto.StorageLevel{UseDisk: true, UseMemory: true, Replication: 1, Deserialized: true}
case StorageLevelOffHeap:
return &proto.StorageLevel{UseDisk: true, UseMemory: true, UseOffHeap: true, Replication: 1}
default:
return &proto.StorageLevel{UseDisk: false, UseMemory: false, UseOffHeap: false, Replication: 1}
}
}
func FromProtoStorageLevel(level *proto.StorageLevel) StorageLevel {
if level.UseDisk && level.UseMemory && level.Replication <= 1 && !level.Deserialized && !level.UseOffHeap {
return StorageLevelMemoryAndDisk
} else if level.UseDisk && level.UseMemory && level.Replication == 2 && !level.Deserialized && !level.UseOffHeap {
return StorageLevelMemoryAndDisk2
} else if level.UseDisk && !level.UseMemory && level.Replication == 3 &&
!level.Deserialized && !level.UseOffHeap {
return StorageLevelDiskOnly3
} else if level.UseDisk && !level.UseMemory && level.Replication == 2 &&
!level.Deserialized && !level.UseOffHeap {
return StorageLevelDiskOnly2
} else if level.UseDisk && !level.UseMemory && level.Replication <= 1 &&
!level.Deserialized && !level.UseOffHeap {
return StorageLevelDiskOnly
} else if !level.UseDisk && level.UseMemory && level.Replication <= 1 &&
!level.Deserialized && !level.UseOffHeap {
return StorageLevelMemoryOnly
} else if !level.UseDisk && level.UseMemory && level.Replication == 2 &&
!level.Deserialized && !level.UseOffHeap {
return StorageLevelMemoryOnly2
} else if level.UseDisk && level.UseMemory && level.Replication <= 1 && level.Deserialized && !level.UseOffHeap {
return StorageLevelMemoyAndDiskDeser
} else if !level.UseDisk && !level.UseMemory && !level.Deserialized && !level.UseOffHeap {
return StorageLevelNone
} else if level.UseOffHeap && !level.Deserialized {
return StorageLevelOffHeap
}
return StorageLevelNone
}
type JoinType int
const (
JoinTypeInner JoinType = iota
JoinTypeLeftOuter JoinType = iota
JoinTypeRightOuter JoinType = iota
JoinTypeFullOuter JoinType = iota
JoinTypeLeftSemi JoinType = iota
JoinTypeLeftAnti JoinType = iota
JoinTypeCross JoinType = iota
)
func ToProtoJoinType(joinType JoinType) proto.Join_JoinType {
switch joinType {
case JoinTypeInner:
return proto.Join_JOIN_TYPE_INNER
case JoinTypeLeftOuter:
return proto.Join_JOIN_TYPE_LEFT_OUTER
case JoinTypeRightOuter:
return proto.Join_JOIN_TYPE_RIGHT_OUTER
case JoinTypeFullOuter:
return proto.Join_JOIN_TYPE_FULL_OUTER
case JoinTypeLeftSemi:
return proto.Join_JOIN_TYPE_LEFT_SEMI
case JoinTypeLeftAnti:
return proto.Join_JOIN_TYPE_LEFT_ANTI
case JoinTypeCross:
return proto.Join_JOIN_TYPE_CROSS
default:
return proto.Join_JOIN_TYPE_INNER
}
}