1717
1818package org .apache .spark .sql
1919
20- import io .netty .buffer .ArrowBuf
21-
2220import java .io .{ByteArrayOutputStream , CharArrayWriter }
2321import java .nio .channels .Channels
2422
@@ -27,11 +25,11 @@ import scala.language.implicitConversions
2725import scala .reflect .runtime .universe .TypeTag
2826import scala .util .control .NonFatal
2927
28+ import io .netty .buffer .ArrowBuf
3029import org .apache .arrow .memory .RootAllocator
3130import org .apache .arrow .vector .file .ArrowWriter
3231import org .apache .arrow .vector .schema .{ArrowFieldNode , ArrowRecordBatch }
33- import org .apache .arrow .vector .types .pojo .{Field , ArrowType , Schema }
34-
32+ import org .apache .arrow .vector .types .pojo .{ArrowType , Field , Schema }
3533import org .apache .commons .lang3 .StringUtils
3634
3735import org .apache .spark .annotation .{DeveloperApi , Experimental , InterfaceStability }
@@ -59,6 +57,7 @@ import org.apache.spark.sql.types._
5957import org .apache .spark .storage .StorageLevel
6058import org .apache .spark .util .Utils
6159
60+
6261private [sql] object Dataset {
6362 def apply [T : Encoder ](sparkSession : SparkSession , logicalPlan : LogicalPlan ): Dataset [T ] = {
6463 new Dataset (sparkSession, logicalPlan, implicitly[Encoder [T ]])
@@ -2314,23 +2313,29 @@ class Dataset[T] private[sql](
23142313 withNewExecutionId {
23152314 try {
23162315
2317- /* def toArrow(internalRow: InternalRow): ArrowBuf = {
2316+ def toArrow (internalRow : InternalRow ): ArrowBuf = {
23182317 val buf = rootAllocator.buffer(128 ) // TODO - size??
23192318 // TODO internalRow -> buf
2319+ buf.setInt(0 , 1 )
23202320 buf
23212321 }
2322- val iter = queryExecution.executedPlan.executeCollect().iterator. map(toArrow)
2322+ val iter = queryExecution.executedPlan.executeCollect().map(toArrow)
23232323 val arrowBufList = iter.toList
23242324 val nodes : List [ArrowFieldNode ] = null // TODO
2325- new ArrowRecordBatch(arrowBufList.length, nodes.asJava, arrowBufList.asJava)*/
2325+ new ArrowRecordBatch (arrowBufList.length, nodes.asJava, arrowBufList.asJava)
2326+
2327+ /*
23262328 val validity = Array[Byte](255.asInstanceOf[Byte], 0)
23272329 val values = Array[Byte](1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
23282330 val validityb = buf(validity)
23292331 val valuesb = buf(values)
2330- new ArrowRecordBatch (16 , List (new ArrowFieldNode (16 , 8 )).asJava, List (validityb, valuesb).asJava)
2332+ new ArrowRecordBatch(
2333+ 16, List(new ArrowFieldNode(16, 8)).asJava, List(validityb, valuesb).asJava)
2334+ */
23312335 } catch {
23322336 case e : Exception =>
2333- // logError(s"Error converting InternalRow to ArrowBuf; ${e.getMessage}:\n$queryExecution")
2337+ // logError
2338+ // (s"Error converting InternalRow to ArrowBuf; ${e.getMessage}:\n$queryExecution")
23342339 throw e
23352340 }
23362341 }
0 commit comments