talend - 转义字符和文本框的使用

标签 talend talend-mdm

tFileOutputDelimited 组件中的 Escape char 和 Text Enclosure 有什么用以及我们如何使用它们?

enter image description here

提前致谢...

最佳答案

要回答您的问题,请考虑以下 CSV 文件中的示例

bookId,bookname,description,authorname
1,Grammer,book that has details about grammer,author1
2,Special Characters, book that describes about some escape characters like \", punctuations and special characters ,etc.,author2
3,Mathematics, book that has mathematical operations like addition +, subtraction -, multiplication *, division / etc, author3

我创建了一个如下所示的简单作业

enter image description here

在上面的示例中,字符逗号 "," 是分隔符。但数据之间有一些逗号

写入 CSV 文件的数据如下所示,

enter image description here

现在,当我从该文件读取数据时,我将获得以下数据

.------+------------------+-------------------------------------------------------+-------------------------------------.
|                                                       tLogRow_3                                                       |
|=-----+------------------+-------------------------------------------------------+------------------------------------=|
|bookId|bookName          |description                                            |author                               |
|=-----+------------------+-------------------------------------------------------+------------------------------------=|
|1     |Grammer           |book that has details about grammer                    |author1                              |
|2     |Special Characters|book that describes about some escape characters like "| punctuations and special characters |
|3     |Mathematics       |book that has mathematical operations like addition +  | subtraction -                       |
'------+------------------+-------------------------------------------------------+-------------------------------------'

如果您注意到,“作者” 列的日志中缺少一些数据

这是因为数据之间有逗号。为了避免这种情况,使用了 Text Enclosure 选项。数据中还有一个转义字符,即\"。在文件中它将被打印为。如果 Text Enclosure 的值为 """,那么您需要转义字符 " 存在于数据中。为此,您必须使用 Escape char 选项,如下所示

enter image description here

现在我得到的输出是

enter image description here

当我读取这些数据时,我会得到如下数据,

.------+------------------+-------------------------------------------------------------------------------------------------------+-------.
|                                                                tLogRow_3                                                                |
|=-----+------------------+-------------------------------------------------------------------------------------------------------+------=|
|bookId|bookName          |description                                                                                            |author |
|=-----+------------------+-------------------------------------------------------------------------------------------------------+------=|
|1     |Grammer           |book that has details about grammer                                                                    |author1|
|2     |Special Characters|book that describes about some escape characters like ", punctuations and special characters ,etc.     |author2|
|3     |Mathematics       |book that has mathematical operations like addition +, subtraction -, multiplication *, division / etc.|author3|
'------+------------------+-------------------------------------------------------------------------------------------------------+-------'

如果您注意到,没有数据丢失

希望这对您有帮助。

关于talend - 转义字符和文本框的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43512095/

相关文章:

sql - 雪花查询已终止 : "SQL execution canceled"

java - 在类 Unix 机器上运行 Talend 作业

parsing - Talend - 合并定界文件的两行以获得一个寄存器

java - 根据组计数分隔行 - TALEND

error-handling - 遍历文件夹-处理不适合架构的文件

talend - Talend 中的公共(public)日志记录

mysql - 如何使用 tmysqloutput 组件更新 talend 中的键值

php - 使用Php的iOS MDM推送通知不起作用