我是AVRO的新手。我们已经开始使用AVRO模式来读取数据。
现在我们有一个用例,我需要在阅读时截断数据。
假设我的avro schcema是这样的
{
"name": "table",
"namepsace": "csd",
"type": "record",
"fields": [
{"name": "CustId", "type":"string"},
{"name": "ProductId", "type":"string"},
{"time": "time", "type":"long"}
]
}
现在数据就是这样。
{
"CustId" : "abc1234"
"ProductID" : "ABC1234567"
"time" : 123456789
}
当我读取数据时,我想截断字段ProductID。 在上面的示例中,当我读取ProductID,即ABC1234567时,我想将其截断为5个字符ABC12
我可以在架构中指定哪些东西来截断它吗?
答案 0 :(得分:0)
这是一个可能的开始。 SpecificDatumReader包含以下转换逻辑。这取决于您生成的类来覆盖转换方法。 Schema编译器需要有钩子来注入转换对象。我一直在找钩子。
class FormController {
public function genForm(Application $app, Request $request){
$form = $app['form.factory']->createBuilder(FormType::class)
->setAction($app['url_generator']->generate('your-route-name'));