Csv Pig:使用.Pig_模式文件加载数据
如何在同一目录中加载带有Csv Pig:使用.Pig_模式文件加载数据,csv,apache-pig,schema,text-files,Csv,Apache Pig,Schema,Text Files,如何在同一目录中加载带有.pig\u架构的数据文件 并且缺少对不同模式字段的含义或不同数据类型值的正确解释 有人能给出一个更好更详细的例子吗?当您在Pig中加载数据时,您可以选择在数据目录中的.Pig\u schemaJSON文件中定义其模式: data/ ├── data_file.csv └── .pig_schema 如果您的数据\u文件.csv如下所示: 3,0,(mybytearray),{(1.7)},[wesam#2.9] 9,8,(mybytearray),{(0.6)},[e
.pig\u架构的数据文件
并且缺少对不同模式字段的含义或不同数据类型值的正确解释
有人能给出一个更好更详细的例子吗?当您在Pig中加载数据时,您可以选择在数据目录中的.Pig\u schema
JSON文件中定义其模式:
data/
├── data_file.csv
└── .pig_schema
如果您的数据\u文件.csv
如下所示:
3,0,(mybytearray),{(1.7)},[wesam#2.9]
9,8,(mybytearray),{(0.6)},[elshamy#6.5]
您可以使用这个.pig\u模式
文件:
{
“字段”:[
{
“名称”:“myint”,
“类型”:10
},
{
“姓名”:“mylong”,
“类型”:15
},
{
“名称”:“mytupe”,
“类型”:110,
“模式”:{
“字段”:[
{
“名称”:“mybytearray”,
“类型”:50
}
]
}
},
{
“姓名”:“mybag”,
“类型”:120,
“模式”:{
“字段”:[
{
“名称”:“mytupe”,
“类型”:110,
“模式”:{
“字段”:[
{
“名称”:“myfloat”,
“类型”:20
}
]
}
}
]
}
},
{
“名称”:“mymap”,
“类型”:100,
“模式”:{
“字段”:[
{
“名称”:空,
“类型”:25
}
]
}
}
]
}
并使用此Pig脚本加载数据
b = LOAD '/path/to/data' USING PigStorage(',');
您的数据将具有以下架构:
b: {myint: int,mylong: long,mytupe: (mybytearray: bytearray),mybag: {mytupe: (myfloat: float)},mymap: map[double]}
在.pig_schema
JSON文件中,“fields”
键的值是数据中所有字段的数组。每个字段都由一个JSON对象定义,其中包含:
“名称”
字段名称(例如:“我的字段”
)
“type”
表示字段类型的整数(例如:55
)(请参见下面的类型值)
“模式”
[可选]定义复杂类型的模式(元组
,包
,映射
)
不同清管器数据类型的“type”
值为:
int : 10
long : 15
float : 20
double : 25
bytearray : 50
chararray : 55
map : 100
tuple : 110
bag : 120
不确定是否需要它,但我在使用模式存储或加载时总是看到这种语法:PigStorage(“,”,“-schema”)