小编che*_*der的帖子

如何在 awk 中使用 gsub 查找和替换文件中的 ("./") 和 (".txt") 字符

我想使用 sub 和 awk 从我的文件中删除字符“ ./ ”和“ .txt

这是我的输入在文件中的样子

./file_name.txt|1230
Run Code Online (Sandbox Code Playgroud)

我希望输出是

  file_name|1230
Run Code Online (Sandbox Code Playgroud)

到目前为止,这就是我所写的。我将使用此 gsub 的输出并将其传递给 awk 并打印它。除此之外,我的其余代码正在工作。

gsub ( "[./txt]","" )
Run Code Online (Sandbox Code Playgroud)

regex unix awk gsub

3
推荐指数
1
解决办法
9246
查看次数

Spark-SQL 是否支持使用正则表达式规范的 Hive Select All Query with except Columns

我正在尝试使用 pyspark 包装器使用 SPARK-SQL实现此功能。我遇到了这个错误

    pyspark.sql.utils.AnalysisException: u"cannot resolve '```(qtr)?+.+```' 
    given input columns:
Run Code Online (Sandbox Code Playgroud)

这是我的查询..基本上试图排除列“qtr”。

select `(qtr)?+.+` from project.table; 
Run Code Online (Sandbox Code Playgroud)

使用以下属性在 hive/beeline 中完美运行

set hive.support.quoted.identifiers=none;
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏?

regex hive apache-spark apache-spark-sql pyspark

3
推荐指数
1
解决办法
2100
查看次数

如何在 ORC 分区 Hive 表的中间添加一列,并且仍然能够使用新结构查询旧分区文件

目前,我在 Prod 中有一个分区 ORC“托管”(错误地创建为内部优先)Hive 表,其中至少有 100 天的数据,按年、月、日(约 16GB 数据)分区。

这个表大约有160列。现在我的要求是在这个表的中间添加一列,并且仍然能够查询旧数据(分区文件)。如果新添加的列对旧数据显示为空就可以了。

到目前为止我做了什么?

1)首先使用下面的方法将表转换为外部表,以在删除之前保留数据文件

alter table <table_name> SET TBLPROPERTIES('EXTERNAL'='TRUE');
Run Code Online (Sandbox Code Playgroud)

2)删除并重新创建中间有新列的表,然后更改表以添加分区文件

但是,我在娱乐后无法读取表格。我收到此错误消息

[Simba][HiveJDBCDriver](500312) Error in fetching data rows: *org.apache.hive.service.cli.HiveSQLException:java.io.IOException: java.io.IOException: ORC does not support type conversion from file type array<string> (87) to reader type int (87):33:32;
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以实现此目的吗?

hive orc analytics-for-apache-hdp

2
推荐指数
1
解决办法
3205
查看次数