作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将固定宽度的数据框中的行转换为分隔数据:
如何在 java/JavaRDD 中实现这一点。
输入数据框:df.show()
c0
|哇啊啊啊啊|
|QBAAAAAWtwo|
输出:应以管道 (|) 分隔。
co |c1 | c2
W |AAAAAA|赢了|
问|BAAAAA|Wtwo|
最佳答案
您可以使用String.substring(int start, int end)
轻松完成此操作。这是您需要的方法的有效实现。
public static String parseData(String data) {
String ret = "c0|c1|c2";
// Remove edge delimiters
data = data.replaceAll("\\|", "");
// Split rows
String[] rows = data.split("\n");
// Iterate through each row
for(String row : rows) {
// We end up with extra empty strings because of pipe delimiting, skip them
if("".equals(row)) continue;
// Check row length, throw exception if incorrect
if(row.length() != 11) {
String message = String.format("Row passed to parseData() was the wrong length! Expected 11, got %d", row.length());
throw new IllegalArgumentException(message);
}
String col1 = row.substring(0,1); // Get column one (length=1)
String col2 = row.substring(1,7); // Get column 2 (length=6)
String col3 = row.substring(7,11); // Get column 3 (length=4)
// Add delimited row to return string
ret += (String.format("\n%s|%s|%s", col1, col2, col3));
}
return ret;
}
我测试过。 parseData("|WAAAAAAWone|\n|QBAAAAAWtwo|")
返回:
c0|c1|c2
W|AAAAAA|Wone
Q|BAAAAA|Wtwo
关于java - 如何根据定义的大小将数据框中的一列拆分为多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56283212/
我是一名优秀的程序员,十分优秀!