小编And*_*rew的帖子

sed搜索并替换创建新文件

我正在尝试搜索和替换文件中的一些文本。创建一个新文件或覆盖现有文件都可以。

如果我用

sed -i 's/<texttoreplace>/<newtext>/g' foo.txt
Run Code Online (Sandbox Code Playgroud)

我最终得到两个文件:

foo.txt是修改后的文件

foo.txte是原始的

如果我用

 sed -i 's/<texttoreplace>/<newtext>/g' foo.txt > bar.txt
Run Code Online (Sandbox Code Playgroud)

我最终得到2个文件:

foo.txt是原始的未修改文件。

bar.txt为0个字节。

我究竟做错了什么?我真的更喜欢只覆盖原始文件,这似乎应该是可以的。

cygwin sed

6
推荐指数
1
解决办法
3895
查看次数

在Metastore中进行分区,但HDFS中不存在路径

我们的提取过程遇到问题,这会导致将分区添加到Hive中的表中,但是HDFS中的路径实际上并不存在。我们已经解决了该问题,但是仍然存在这些错误的分区。使用Tez查询这些表时,我们得到FileNotFound异常,指向HDFS中不存在的位置。如果我们使用MR而不是Tez,则查询有效(这对我来说很混乱),但是它太慢了。

有没有办法列出所有具有此探针的分区? MSCK REPAIR似乎可以解决相反的问题,即HDFS中存在数据,但Hive中没有分区。

编辑:更多信息。这是找不到文件异常的输出:

java.io.FileNotFoundException: File hdfs://<server>/db/tables/2016/03/14/mytable does not exist.

如果运行show partitions <db.mytable>,我将获得所有分区,包括的一个分区dt=2016-03-14

show table extended like '<db.mytable>' partition(dt='2016-03-14'返回相同的位置: location:hdfs://server/db/tables/2016/03/14/mytable

hive hdfs

6
推荐指数
2
解决办法
3168
查看次数

跳过文件的前x行和后y行

我正在对文本文件进行一些简单的解析(可能会达到1GB的范围)。我将如何跳过前N行,更重要的是,跳过最后(不同的)N行?我确定我可以打开文件并计算行数,并使用$ _ <total_row_count -N来执行某些操作,但这似乎效率很低。我差不多是个perl newb,顺便说一句。

perl

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

递归列出文件并按扩展名过滤

我试图递归地遍历给定的目录及其所有子目录,并列出以 .json 结尾的所有文件。感谢这个答案,我已经得到了递归位的工作。现在我正在尝试找出过滤部分。

这是我当前的尝试:

    import org.apache.hadoop.fs.{FileSystem,Path, PathFilter}
    import org.apache.hadoop.fs.Path;

    val fs = FileSystem.get(spark.sparkContext.hadoopConfiguration)

    def listJsonFiles(hdfsPath: String): List[String] = {
      fs
        .listStatus(new Path(hdfsPath)).filter(_.getPath.getName.endsWith(".json"))
        //.listStatus(new Path(hdfsPath))
        .flatMap { obj =>
          if (obj.isFile)
            List(hdfsPath + "/" + obj.getPath.getName)
          // If it's a dir and we're in a recursive option:
          else
            listJsonFiles(hdfsPath + "/" + obj.getPath.getName)
        }
        .toList
    }
    val files = listJsonFiles("/path/to/some/stuff")
Run Code Online (Sandbox Code Playgroud)

这会返回一个空列表。如果我使用不带过滤器的 listStatus 行,它会返回我传入的路径中所有文件的列表,包括所有 *.json 文件。所以我知道它们存在,但我无法让过滤器工作。

scala apache-spark

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

我正在尝试创建一个数据库,但我一直得到同样的错误,据我和我的同学们说,代码很好

这只是一个例子,从前两个表中我得到了同样的错误:

MySQL说:文档

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 10

CREATE TABLE Tallas
(
IDTalla int NOT NULL AUTO_INCREMENT,
descripcion varchar(45) NOT NULL,
PRIMARY KEY (IDTalla),
)

CREATE TABLE Modelo
(
IDModelo int NOT NULL AUTO_INCREMENT,
IDTalla int NOT NULL,
modeloNombre varchar(45) NOT NULL,
precio varchar(45) NOT NULL,
informacion varchar(45) NOT NULL,
PRIMARY KEY (IDModelo),
FOREIGN KEY …
Run Code Online (Sandbox Code Playgroud)

mysql sql database phpmyadmin

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

hive.cli.print.header=true 不起作用

我正在尝试将查询结果导出到文件系统。一切正常,除了我无法将列标题作为文件的一部分。这是我的脚本的样子:

set hive.cli.print.header=true;
set mapreduce.task.timeout=0;
set hive.auto.convert.join=false;
set hive.execution.engine=tez;

insert overwrite local directory '/work/output'
ROW FORMAT DELIMTED
FIELDS TERMINATED BY '|'

select...
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

hive

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

标签 统计

hive ×2

apache-spark ×1

cygwin ×1

database ×1

hdfs ×1

mysql ×1

perl ×1

phpmyadmin ×1

scala ×1

sed ×1

sql ×1