Thank you, Fabian. It solved the compilation error, but at runtime I get an
end-of-file exception. I've put up a sample code with data at Github
https://github.com/esaliya/flinkit. The data file is a binary file
containing 64 Short values.


02/08/2016 16:01:19 CHAIN DataSource (at main(WordCount.java:25)
(org.apache.flink.api.common.io.SerializedInputFormat)) -> FlatMap
(count())(4/8) switched to FAILED
java.io.EOFException
at java.io.DataInputStream.readShort(DataInputStream.java:315)
at
org.apache.flink.core.memory.InputViewDataInputStreamWrapper.readShort(InputViewDataInputStreamWrapper.java:92)
at org.apache.flink.types.ShortValue.read(ShortValue.java:88)
at
org.apache.flink.api.common.io.SerializedInputFormat.deserialize(SerializedInputFormat.java:37)
at
org.apache.flink.api.common.io.SerializedInputFormat.deserialize(SerializedInputFormat.java:31)
at
org.apache.flink.api.common.io.BinaryInputFormat.nextRecord(BinaryInputFormat.java:274)
at
org.apache.flink.runtime.operators.DataSourceTask.invoke(DataSourceTask.java:169)
at org.apache.flink.runtime.taskmanager.Task.run(Task.java:584)
at java.lang.Thread.run(Thread.java:745)

On Mon, Feb 8, 2016 at 3:50 PM, Fabian Hueske <fhue...@gmail.com> wrote:

> Hi,
>
> please try to replace
> DataSet<ShortValue> ds = env.createInput(sif);
> by
> DataSet<ShortValue> ds = env.createInput(sif,
> ValueTypeInfo.SHORT_VALUE_TYPE_INFO);
>
> Best, Fabian
>
> 2016-02-08 19:33 GMT+01:00 Saliya Ekanayake <esal...@gmail.com>:
>
>> Till,
>>
>> I am still having trouble getting this to work. Here's my code (
>> https://github.com/esaliya/flinkit)
>>
>> String binaryFile = "src/main/resources/sample.bin";
>> SerializedInputFormat<ShortValue> sif = new SerializedInputFormat<>();
>> sif.setFilePath(binaryFile);
>> DataSet<ShortValue> ds = env.createInput(sif);
>> System.out.println(ds.count());
>>
>>
>> I still get the same error as shown below
>>
>> Exception in thread "main"
>> org.apache.flink.api.common.InvalidProgramException: The type returned by
>> the input format could not be automatically determined. Please specify the
>> TypeInformation of the produced type explicitly by using the
>> 'createInput(InputFormat, TypeInformation)' method instead.
>> at
>> org.apache.flink.api.java.ExecutionEnvironment.createInput(ExecutionEnvironment.java:511)
>> at org.saliya.flinkit.WordCount.main(WordCount.java:24)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:497)
>> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
>>
>>
>> On Mon, Feb 8, 2016 at 5:42 AM, Till Rohrmann <trohrm...@apache.org>
>> wrote:
>>
>>> Hi Saliya,
>>>
>>> in order to set the file path for the SerializedInputFormat you first
>>> have to create it and then explicitly call setFilePath.
>>>
>>> final SerializedInputFormat<Record> inputFormat = new 
>>> SerializedInputFormat<Record>();
>>> inputFormat.setFilePath(PATH_TO_FILE);
>>>
>>> env.createInput(inputFormat, myTypeInfo);
>>>
>>> Cheers,
>>> Till
>>> ​
>>>
>>> On Mon, Feb 8, 2016 at 7:00 AM, Saliya Ekanayake <esal...@gmail.com>
>>> wrote:
>>>
>>>> Hi,
>>>>
>>>> I was trying to read a simple binary file using SerializedInputFormat
>>>> as suggested in a different thread, but encounters the following error. I
>>>> tried to do what the exception suggests, but eventhough createInput()
>>>> returns a DataSet object I couldn't find how to specify which file to read.
>>>>
>>>> Any help is appreciated. The file I am trying to read is a simple
>>>> binary file with containing java short values. Is there any example on
>>>> reading binary files available?
>>>>
>>>> Exception in thread "main"
>>>> org.apache.flink.api.common.InvalidProgramException: The type returned by
>>>> the input format could not be automatically determined. Please specify the
>>>> TypeInformation of the produced type explicitly by using the
>>>> 'createInput(InputFormat, TypeInformation)' method instead.
>>>>
>>>> Thank you,
>>>> Saliya
>>>>
>>>>
>>>> --
>>>> Saliya Ekanayake
>>>> Ph.D. Candidate | Research Assistant
>>>> School of Informatics and Computing | Digital Science Center
>>>> Indiana University, Bloomington
>>>> Cell 812-391-4914
>>>> http://saliya.org
>>>>
>>>
>>>
>>
>>
>> --
>> Saliya Ekanayake
>> Ph.D. Candidate | Research Assistant
>> School of Informatics and Computing | Digital Science Center
>> Indiana University, Bloomington
>> Cell 812-391-4914
>> http://saliya.org
>>
>
>


-- 
Saliya Ekanayake
Ph.D. Candidate | Research Assistant
School of Informatics and Computing | Digital Science Center
Indiana University, Bloomington
Cell 812-391-4914
http://saliya.org

Reply via email to