Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@

package org.apache.spark.sql.connector.read;

import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.OptionalLong;

import org.apache.spark.annotation.Evolving;
Expand All @@ -35,7 +35,7 @@
public interface Statistics {
OptionalLong sizeInBytes();
OptionalLong numRows();
default Optional<Map<NamedReference, ColumnStatistics>> columnStats() {
return Optional.empty();
default Map<NamedReference, ColumnStatistics> columnStats() {
return new HashMap();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -223,8 +223,8 @@ object DataSourceV2Relation {
}

var colStats: Seq[(Attribute, ColumnStat)] = Seq.empty[(Attribute, ColumnStat)]
if (v2Statistics.columnStats().isPresent) {
val v2ColumnStat = v2Statistics.columnStats().get()
if (!v2Statistics.columnStats().isEmpty) {
val v2ColumnStat = v2Statistics.columnStats()
val keys = v2ColumnStat.keySet()

keys.forEach(key => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ package org.apache.spark.sql.connector.catalog
import java.time.{Instant, ZoneId}
import java.time.temporal.ChronoUnit
import java.util
import java.util.{Optional, OptionalLong}
import java.util.OptionalLong

import scala.collection.mutable

Expand Down Expand Up @@ -277,7 +277,7 @@ abstract class InMemoryBaseTable(
case class InMemoryStats(
sizeInBytes: OptionalLong,
numRows: OptionalLong,
override val columnStats: Optional[util.Map[NamedReference, ColumnStatistics]])
override val columnStats: util.Map[NamedReference, ColumnStatistics])
extends Statistics

case class InMemoryColumnStats(
Expand All @@ -298,7 +298,7 @@ abstract class InMemoryBaseTable(

override def estimateStatistics(): Statistics = {
if (data.isEmpty) {
return InMemoryStats(OptionalLong.of(0L), OptionalLong.of(0L), Optional.empty())
return InMemoryStats(OptionalLong.of(0L), OptionalLong.of(0L), new util.HashMap())
}

val inputPartitions = data.map(_.asInstanceOf[BufferedRows])
Expand Down Expand Up @@ -331,15 +331,15 @@ abstract class InMemoryBaseTable(
val colNames = tableSchema.fields.map(_.name)
var i = 0
for (col <- colNames) {
val fieldReference = FieldReference(col)
val fieldReference = FieldReference.column(col)
val colStats = InMemoryColumnStats(
OptionalLong.of(colValueSets(i).size()),
OptionalLong.of(numOfNulls(i)))
map.put(fieldReference, colStats)
i = i + 1
}

InMemoryStats(OptionalLong.of(sizeInBytes), OptionalLong.of(numRows), Optional.of(map))
InMemoryStats(OptionalLong.of(sizeInBytes), OptionalLong.of(numRows), map)
}

override def outputPartitioning(): Partitioning = {
Expand Down