| /* |
| * 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.hyracks.examples.tpch.client; |
| |
| import java.io.File; |
| |
| import org.apache.hyracks.api.constraints.PartitionConstraintHelper; |
| import org.apache.hyracks.api.dataflow.IOperatorDescriptor; |
| import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer; |
| import org.apache.hyracks.api.dataflow.value.RecordDescriptor; |
| import org.apache.hyracks.api.io.FileSplit; |
| import org.apache.hyracks.api.io.UnmanagedFileSplit; |
| import org.apache.hyracks.api.job.JobSpecification; |
| import org.apache.hyracks.dataflow.common.data.marshalling.FloatSerializerDeserializer; |
| import org.apache.hyracks.dataflow.common.data.marshalling.IntegerSerializerDeserializer; |
| import org.apache.hyracks.dataflow.common.data.marshalling.UTF8StringSerializerDeserializer; |
| import org.apache.hyracks.dataflow.common.data.parsers.FloatParserFactory; |
| import org.apache.hyracks.dataflow.common.data.parsers.IValueParserFactory; |
| import org.apache.hyracks.dataflow.common.data.parsers.IntegerParserFactory; |
| import org.apache.hyracks.dataflow.common.data.parsers.UTF8StringParserFactory; |
| |
| public class Common { |
| static RecordDescriptor custDesc = new RecordDescriptor(new ISerializerDeserializer[] { |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer() }); |
| |
| static RecordDescriptor ordersDesc = |
| new RecordDescriptor(new ISerializerDeserializer[] { new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer() }); |
| static RecordDescriptor custOrderJoinDesc = |
| new RecordDescriptor(new ISerializerDeserializer[] { new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer() }); |
| |
| static RecordDescriptor lineitemDesc = new RecordDescriptor(new ISerializerDeserializer[] { |
| IntegerSerializerDeserializer.INSTANCE, IntegerSerializerDeserializer.INSTANCE, |
| IntegerSerializerDeserializer.INSTANCE, IntegerSerializerDeserializer.INSTANCE, |
| IntegerSerializerDeserializer.INSTANCE, FloatSerializerDeserializer.INSTANCE, |
| FloatSerializerDeserializer.INSTANCE, FloatSerializerDeserializer.INSTANCE, |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer(), |
| new UTF8StringSerializerDeserializer(), new UTF8StringSerializerDeserializer() }); |
| |
| static IValueParserFactory[] lineitemParserFactories = new IValueParserFactory[] { IntegerParserFactory.INSTANCE, |
| IntegerParserFactory.INSTANCE, IntegerParserFactory.INSTANCE, IntegerParserFactory.INSTANCE, |
| IntegerParserFactory.INSTANCE, FloatParserFactory.INSTANCE, FloatParserFactory.INSTANCE, |
| FloatParserFactory.INSTANCE, UTF8StringParserFactory.INSTANCE, UTF8StringParserFactory.INSTANCE, |
| UTF8StringParserFactory.INSTANCE, UTF8StringParserFactory.INSTANCE, UTF8StringParserFactory.INSTANCE, |
| UTF8StringParserFactory.INSTANCE, UTF8StringParserFactory.INSTANCE, UTF8StringParserFactory.INSTANCE, }; |
| |
| static IValueParserFactory[] custParserFactories = new IValueParserFactory[] { UTF8StringParserFactory.INSTANCE, |
| UTF8StringParserFactory.INSTANCE, UTF8StringParserFactory.INSTANCE, UTF8StringParserFactory.INSTANCE, |
| UTF8StringParserFactory.INSTANCE, UTF8StringParserFactory.INSTANCE, UTF8StringParserFactory.INSTANCE, |
| UTF8StringParserFactory.INSTANCE }; |
| static IValueParserFactory[] orderParserFactories = new IValueParserFactory[] { UTF8StringParserFactory.INSTANCE, |
| UTF8StringParserFactory.INSTANCE, UTF8StringParserFactory.INSTANCE, UTF8StringParserFactory.INSTANCE, |
| UTF8StringParserFactory.INSTANCE, UTF8StringParserFactory.INSTANCE, UTF8StringParserFactory.INSTANCE, |
| UTF8StringParserFactory.INSTANCE, UTF8StringParserFactory.INSTANCE }; |
| |
| static FileSplit[] parseFileSplits(String fileSplits) { |
| String[] splits = fileSplits.split(","); |
| FileSplit[] fSplits = new FileSplit[splits.length]; |
| for (int i = 0; i < splits.length; ++i) { |
| String s = splits[i].trim(); |
| int idx = s.indexOf(':'); |
| if (idx < 0) { |
| throw new IllegalArgumentException("File split " + s + " not well formed"); |
| } |
| fSplits[i] = new UnmanagedFileSplit(s.substring(0, idx), new File(s.substring(idx + 1)).getAbsolutePath()); |
| } |
| return fSplits; |
| } |
| |
| static void createPartitionConstraint(JobSpecification spec, IOperatorDescriptor op, FileSplit[] splits) { |
| String[] parts = new String[splits.length]; |
| for (int i = 0; i < splits.length; ++i) { |
| parts[i] = splits[i].getNodeName(); |
| } |
| PartitionConstraintHelper.addAbsoluteLocationConstraint(spec, op, parts); |
| } |
| } |