小编Boe*_*ern的帖子

Scala 和 Spark:Windows 上的 Dataframe.write._

有人设法在 Windows 上使用 Spark 的DataFrame编写文件(尤其是 CSV)吗?

由于自 2.0 版以来Sparks 编写 .CSV 的本机功能(和统一方法),许多关于 SO 的答案已经过时(例如这个write()。此外,我下载并添加winutils.exe此处建议的内容。

代码

// reading works just fine
val df = spark.read
             .option("header", true)
             .option("inferSchema", true)
             .csv("file:///C:/tmp/in.csv")
// writing fails, none of these work
df.write.csv("file:///C:/tmp/out.csv")
df.write.csv("C:/tmp/out.csv")
Run Code Online (Sandbox Code Playgroud)

错误

Exception in thread "main" org.apache.spark.SparkException: Job aborted.
    at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelationCommand$$anonfun$run$1.apply$mcV$sp(InsertIntoHadoopFsRelationCommand.scala:149)
    at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelationCommand$$anonfun$run$1.apply(InsertIntoHadoopFsRelationCommand.scala:115)
    at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelationCommand$$anonfun$run$1.apply(InsertIntoHadoopFsRelationCommand.scala:115)
    at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:57)
    at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelationCommand.run(InsertIntoHadoopFsRelationCommand.scala:115)
    at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult$lzycompute(commands.scala:60)
    at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult(commands.scala:58)
    at org.apache.spark.sql.execution.command.ExecutedCommandExec.doExecute(commands.scala:74)
    at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$1.apply(SparkPlan.scala:115)
    at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$1.apply(SparkPlan.scala:115)
    at org.apache.spark.sql.execution.SparkPlan$$anonfun$executeQuery$1.apply(SparkPlan.scala:136) …
Run Code Online (Sandbox Code Playgroud)

windows csv scala apache-spark

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

Scala&Spark:一次投射多个列

由于VectorAssembler崩溃,如果传递的列具有除NumericTypeor 之外的任何其他类型BooleanType并且我正在处理许多TimestampType列,我想知道:

有一种简单的方法,一次投下多个列吗?

根据这个答案,我已经有了一个方便的方法来构建一个列:

def castColumnTo(df: DataFrame, 
    columnName: String, 
    targetType: DataType ) : DataFrame = {
      df.withColumn( columnName, df(columnName).cast(targetType) )
}
Run Code Online (Sandbox Code Playgroud)

我想过castColumnTo递归调用,但我强烈怀疑这是(高效)的方式.

scala apache-spark

5
推荐指数
2
解决办法
4740
查看次数

Oracle SQL:ORDER BY非唯一字段是否确定?

让我们说我有一个观点 MYVIEW

COL1[CARCHAR2]    SORTINGCOL[NUMBER]
"itm1"            100
"itm2"            101
"itm3"            100
Run Code Online (Sandbox Code Playgroud)

我查询以下语句

SELECT *
FROM MYVIEW
ORDER BY SORTINGCOL;
Run Code Online (Sandbox Code Playgroud)

是否保证(=我可以依赖)返回的订单总是一样的吗?让我们说吧

  1. item1 (值为100)
  2. item3 (值为100)
  3. item2 (值为101)

很明显,item2总是会最终成为最后的,但对于item1item3用相同的SORTINGCOL价值呢?

sql oracle oracle11g

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

如果包含一个空格,熊猫将名称列拆分为名字和姓氏

假设我有一个包含如下名称的 Pandas DataFrame:

name_df = pd.DataFrame({'name':['Jack Fine','Kim Q. Danger','Jane Smith', 'Juan de la Cruz']})

    name
0   Jack Fine
1   Kim Q. Danger
2   Jane Smith
3   Juan de la Cruz
Run Code Online (Sandbox Code Playgroud)

我想分裂name柱成first_namelast_name是否有在名称中有一个空格。否则,我希望将全名推入first_name.

所以最终的 DataFrame 应该是这样的:

  first_name     last_name
0 Jack           Fine
1 Kim Q. Danger
2 Jane           Smith
3 Juan de la Cruz
Run Code Online (Sandbox Code Playgroud)

我试图通过首先应用以下函数来返回可以拆分为名字和姓氏的名称来实现此目的:

def validate_single_space_name(name: str) -> str:
    pattern = re.compile(r'^.*( ){1}.*$')
    match_obj = re.match(pattern, name)
    if match_obj:
        return name
    else:
        return None …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

Scala Spark:重命名大量列的性能问题

为了能够在DataFrame不转义的情况下使用.我的列名,我需要一个函数来“验证”所有列名 - 但我尝试过的所有方法都没有及时完成这项工作(我在 5 分钟后中止)。

我正在尝试我的算法的数据集是 golub 数据集(在此处获取)。这是一个 2.2MB 的 CSV 文件,有 7200 列。重命名所有列应该是几秒钟的事情

读取CSV的代码

var dfGolub = spark.read
    .option("header", "true")
    .option("inferSchema", "true")
    .csv("golub_merged.csv")
    .drop("_c0") // drop the first column
    .repartition(numOfCores)
Run Code Online (Sandbox Code Playgroud)

尝试重命名列:

 def validifyColumnnames1(df : DataFrame) : DataFrame = {
     import org.apache.spark.sql.functions.col
     val cols = df.columns
     val colsRenamed = cols.map(name => col(name).as(name.replaceAll("\\.","")))
     df.select(colsRenamed : _*)
 }


def validifyColumnnames2[T](df : Dataset[T]) : DataFrame = {
    val newColumnNames = ArrayBuffer[String]()
    for(oldCol <- df.columns) {
        newColumnNames += …
Run Code Online (Sandbox Code Playgroud)

csv scala apache-spark

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

R:写入文件时不带尾随换行符

我正在尝试将值写入单独的文件(将它们包含在我的 TeX 文件中)。但是我偶然发现的所有方法都在文件末尾插入了一个新行(这会导致出现不需要的空间)。该手册(例如?write)也没有提供任何有用的信息。

# 1st try
write(x = "1", file = "test")

# 2nd try
fileConn<-file("test")
writeLines(c("1"), fileConn)
close(fileConn)
Run Code Online (Sandbox Code Playgroud)

谢谢!任何想法?

r

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

Matlab地板虫?

我想我在Matlab中发现了一个错误.我唯一的解释是,matlab内部计算的值不是显示的值:

K>> calc(1,11)

ans =

   4.000000000000000

K>> floor(ans)

ans =

     3
Run Code Online (Sandbox Code Playgroud)

显示的代码是Matlab控制台的输出.calc(x,y)只是一个double值数组.

floating-point precision matlab rounding

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

R ggplot:方面中的不同 geom_ablines

我想geom_abline在我的两个方面绘制两个不同的s。这似乎与geom_hline- 这是在此处回答的不同。

尽管

library(ggplot2)
dummy1 <- expand.grid(X = factor(c("A", "B")), Y = rnorm(10))
dummy1$D <- rnorm(nrow(dummy1))
dummy2 <- data.frame(X = c("A", "B"), Z = c(1, 0))
ggplot(dummy1, aes(x = D, y = Y)) + geom_point() + facet_grid(~X) + 
    geom_hline(data = dummy2, aes(yintercept = Z))
Run Code Online (Sandbox Code Playgroud)

..有效,这个:

library(ggplot2)
dummy1 <- expand.grid(X = factor(c("A", "B")), Y = rnorm(10))
dummy1$D <- rnorm(nrow(dummy1))
dummy2 <- data.frame(X = c("A", "B"), Z = c(1, 0))
ggplot(dummy1, aes(x = D, y = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

Vue 3 - 如何在设置中调度到 Vuex 商店

我有一个使用 Vue 3 和 Vuex 的项目。这是我第一次使用 Vue 3。我似乎不知道如何在 Vue 3 项目的 Setup 方法中访问 Vuex。

我有一个特征对象。这是由子组件使用 featureSelected 方法设置的。首先,在我的设置中,我使用 useStore 创建一个存储常量;从 import { useStore } from "vuex";。然后,在 featureSelected 函数内,我调用此存储对象上的调度函数store.dispatch("setPlot", { geometry: newFeature });

我不断收到错误消息,告诉我存储对象上不存在调度函数:Uncaught TypeError: store.dispatch is not a function

  setup() {
    const store = useStore;

    const feature = ref();

    const featureSelected = (newFeature) => {
      feature.value = newFeature;
      store.dispatch("setPlot", { geometry: newFeature });
    };

    return { feature, featureSelected };
  },
Run Code Online (Sandbox Code Playgroud)

vue.js vuex vuejs3 vue-composition-api vuex4

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

Spark&Scala:将CSV文件读入DataFrame/Dataset

来自R世界我希望使用Scala Shell(./spark-shell)将.csv导入Spark(v.1.6.1 )

我的.csv有一个标题,看起来像

"col1","col2","col3"
1.4,"abc",91
1.3,"def",105
1.35,"gh1",104
Run Code Online (Sandbox Code Playgroud)

谢谢.

csv shell scala apache-spark

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