blob: acbc187fb84bc20488d458dfc5d55c0628619b72 [file] [log] [blame]
/*
* 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 org.apache.wayang.apps.tpch.data
import org.apache.wayang.apps.tpch.CsvUtils
/**
* Represents elements from the TPC-H `ORDERS` table.
*/
case class Order(orderKey: Long,
custKey: Long,
orderStatus: Char,
totalPrice: Double,
orderDate: Int,
orderPriority: String,
clerk: String,
shipPrioritiy: Int,
comment: String)
object Order {
val fields = IndexedSeq(
"o_orderkey",
"o_custkey",
"o_orderstatus",
"o_totalprice",
"o_orderdate",
"o_orderpriority",
"o_clerk",
"o_shippriority",
"o_comment"
)
/**
* Parse a CSV row into a [[Order]] instance.
*
* @param csv the [[String]] to parse
* @return the [[Order]]
*/
def parseCsv(csv: String): Order = {
val fields = csv.split("\\|")
Order(
fields(0).toLong,
fields(1).toLong,
fields(2).charAt(0),
fields(3).toDouble,
CsvUtils.parseDate(fields(4)),
fields(5),
fields(6),
fields(7).toInt,
fields(8)
)
}
}