我是胶水新手,我正在尝试让爬虫功能从一些日志文件中提取数据库表。问题是文件的第一行不同。我定义了一个自定义 Grok 分类器,只要删除第一行,它就可以正常工作,但是当我使用原始日志文件时,它会停止工作并使用默认的粘合分类器(这显然对我不起作用)。我尝试将 'skip.header.line.count'=1 添加到表属性(并将爬网程序设置为不更新架构),但这也不起作用。有没有办法在 grok 模式中写“跳过第一行”?
amazon-web-services logstash-grok aws-glue aws-glue-data-catalog
我正在学习 Glue 数据目录,但有点困惑。我知道 Glue 数据目录不存储数据本身,而只存储数据库和表的元数据,但是,它们的存储位置在哪里?
我试图找出代码中编译错误的原因:
class A
{
public:
virtual ~A(){}
};
class B: public A
{
public:
virtual ~B(){}
};
class D: public B
{
public:
virtual ~D(){}
};
template <class X, class Y>
X* fun(X* p){return dynamic_cast<Y*>(p);}
int main()
{
A* q = dynamic_cast<B*>(new D());
A* p = fun<D,B>(new D());
}
Run Code Online (Sandbox Code Playgroud)
对我来说,似乎指针q和p应该指向相同的类型但是对于p我收到编译器错误,说"无效转换从'B*'到'D*'".我唯一没有得到错误的是当我以B的子类为D(因此p是空指针)的方式更改类时.谁能帮我理解为什么会这样?