Cosmos HttpFS文件格式

时间:2014-06-16 15:18:50

标签: fiware fiware-orion fiware-cygnus

实际上,我是通过Cygnus向Cosmos发送数据的。 Cygnus放置数据的Cosmos目录是,例如/ user / myUser / mysetdata。我用这些列创建了我的hive表:recvTimeTs,recvTime,entityId,entityType,attrName,attrType,attrValue。

现在,我想通过HttpFS直接将数据放入Cosmos到放置Cygnus的同一目录。

怎么可能是" .txt"文件格式?它必须以逗号分隔?例如:

recvTimeTs; recvTimem; ENTITYID;的EntityType; attrName; attrType; attrValue 值;值;值; ...

1 个答案:

答案 0 :(得分:0)

Hive表包含位于HDFS文件夹中的文件中的结构化数据,该文件位于Hive表创建命令中。

使用 Cygnus 0.1 ,这样的结构化数据是通过使用类似CSV的文件实现的,因此将新文件添加到HDFS文件夹或将新数据附加到该文件夹​​中已存在的文件非常简单作为组成新的类似CSV的数据行。分隔符必须与创建表时指定的相同,例如:

create external table <table_name> (recvTimeTs bigint, recvTime string, entityId string, entityType string, attrName string, attrType string, attrValue string) row format delimited fields terminated by '|' location '/user/<myusername>/<mydataset>/';

因此,作为示例分隔符|,新数据行必须如下:

<ts>|<ts_ms>|<entity_name>|<entity_type>|<attribute_name>|<attribute_type>|<value>

Cugnus 0.2 (含),结构化数据是通过使用类似Json的文件实现的。在这种情况下,您不必处理分隔符,也不必处理表创建(请参阅this question),因为Json不使用分隔符,并且表创建是自动的。在这种情况下,您必须按照以下任何格式撰写要附加到现有文件的新文件或新数据(具体取决于您是以row还是column模式存储数据,分别地):

{"recvTimeTs":"13453464536", "recvTime":"2014-02-27T14:46:21", "entityId":"Room1", "entityType":"Room", "attrName":"temperature", "attrType":"centigrade", "attrValue":"26.5", "attrMd":[{name:ID, type:string, value:ground}]}

{"recvTime":"2014-02-27T14:46:21", "temperature":"26.5", "temperature_md":[{"name":"ID", "type":"string", "value":"ground"}]}

值得一提的是,存在负责将类似0.1的格式转换为0.2样(或更高)格式的脚本。