Github user sarutak commented on a diff in the pull request:

    https://github.com/apache/spark/pull/7692#discussion_r36143508
  
    --- Diff: core/src/main/scala/org/apache/spark/ui/storage/RDDPage.scala ---
    @@ -120,23 +151,159 @@ private[ui] class RDDPage(parent: StorageTab) 
extends WebUIPage("rdd") {
           <td>{Utils.bytesToString(worker.diskUsed)}</td>
         </tr>
       }
    +}
    +
    +private[ui] case class BlockTableRowData(
    +    blockName: String,
    +    storageLevel: String,
    +    memoryUsed: Long,
    +    diskUsed: Long,
    +    executors: String)
    +
    +private[ui] class BlockDataSource(
    +    rddPartitions: Seq[RDDPartitionInfo],
    +    pageSize: Int,
    +    sortColumn: String,
    +    desc: Boolean) extends PagedDataSource[BlockTableRowData](pageSize) {
    +
    +  private val data = 
rddPartitions.map(blockRow).sorted(ordering(sortColumn, desc))
    +
    +  override def dataSize: Int = data.size
    +
    +  override def sliceData(from: Int, to: Int): Seq[BlockTableRowData] = {
    +    data.slice(from, to)
    +  }
    +
    +  private def blockRow(rddPartition: RDDPartitionInfo): BlockTableRowData 
= {
    +    BlockTableRowData(
    +    rddPartition.blockName,
    +    rddPartition.storageLevel,
    +    rddPartition.memoryUsed,
    +    rddPartition.diskUsed,
    +    rddPartition.executors.mkString(" ")
    +    )
    +  }
    +
    +  /**
    +   * Return Ordering according to sortColumn and desc
    +   */
    +  private def ordering(sortColumn: String, desc: Boolean): 
Ordering[BlockTableRowData] = {
    +    val ordering = sortColumn match {
    +      case "Block Name" => new Ordering[BlockTableRowData] {
    +        override def compare(x: BlockTableRowData, y: BlockTableRowData): 
Int =
    +          Ordering.String.compare(x.blockName, y.blockName)
    +      }
    +      case "Storage Level" => new Ordering[BlockTableRowData] {
    +        override def compare(x: BlockTableRowData, y: BlockTableRowData): 
Int =
    +          Ordering.String.compare(x.storageLevel, y.storageLevel)
    +      }
    +      case "Size in Memory" => new Ordering[BlockTableRowData] {
    +        override def compare(x: BlockTableRowData, y: BlockTableRowData): 
Int =
    +          Ordering.Long.compare(x.memoryUsed, y.memoryUsed)
    +      }
    +      case "Size on Disk" => new Ordering[BlockTableRowData] {
    +        override def compare(x: BlockTableRowData, y: BlockTableRowData): 
Int =
    +          Ordering.Long.compare(x.diskUsed, y.diskUsed)
    +      }
    +      case "Executors" => new Ordering[BlockTableRowData] {
    +        override def compare(x: BlockTableRowData, y: BlockTableRowData): 
Int =
    +          Ordering.String.compare(x.executors, y.executors)
    +      }
    +      case unknownColumn => throw new IllegalArgumentException(s"Unknown 
column: $unknownColumn")
    +    }
    +    if (desc) {
    +      ordering.reverse
    +    } else {
    +      ordering
    +    }
    +  }
    +}
    +
    +private[ui] class BlockPagedTable(
    +    basePath: String,
    +    rddPartitions: Seq[RDDPartitionInfo],
    +    pageSize: Int,
    +    sortColumn: String,
    +    desc: Boolean) extends PagedTable[BlockTableRowData] {
    +
    +  override def tableId: String = "rdd-storage-by-block-table"
    +
    +  override def tableCssClass: String = "table table-bordered 
table-condensed table-striped"
    +
    +  override val dataSource: BlockDataSource = new BlockDataSource(
    +    rddPartitions,
    +    pageSize,
    +    sortColumn,
    +    desc
    +  )
    --- End diff --
    
    Same here (the position of the right parenthesis).


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to