小编sep*_*tra的帖子

在 MacOS 上安装 rpy2

我一直在尝试在 MacOS Sierra 上为 Python 3.6 安装 RPy2,但是 pip 安装失败而没有编译。

安装错误并显示以下消息:

  clang: error: unsupported option '-fopenmp'
  error: command 'clang' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)

任何有关安装的帮助将不胜感激。

python r pip rpy2

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

Apache Spark使用自制程序从1.5.2升级到1.6.0,导致执行期间拒绝权限错误

我刚刚使用Homebrew将Spark从1.5.2升级到1.6.0并将我的SPARK_HOME环境变量重置为/usr/local/Cellar/apache-spark/1.6.0.现在,在执行pyspark时,它会给出一个权限被拒绝的错误.

如果我进入早期的1.5.2安装目录并从那里执行pyspark,它运行正常.但是从1.6.0安装目录运行pyspark失败,并显示此权限被拒绝错误.

/usr/local/Cellar/apache-spark/1.6.0/bin/load-spark-env.sh: line 2: /usr/local/Cellar/apache-spark/1.6.0/libexec/bin/load-spark-env.sh: Permission denied

/usr/local/Cellar/apache-spark/1.6.0/bin/load-spark-env.sh: line 2: exec: /usr/local/Cellar/apache-spark/1.6.0/libexec/bin/load-spark-env.sh: cannot execute: Undefined error: 0

可能是什么导致了这个?

linux homebrew apache-spark

9
推荐指数
2
解决办法
3113
查看次数

读取tar.gz归档中压缩的多个文件到Spark中

我正在尝试从压缩成tar的几个json文件创建Spark RDD.例如,我有3个文件

file1.json
file2.json
file3.json
Run Code Online (Sandbox Code Playgroud)

这些都包含在archive.tar.gz.

我想从json文件创建一个数据帧.问题是Spark没有正确读取json文件.使用sqlContext.read.json("archive.tar.gz")sc.textFile("archive.tar.gz")导致乱码/额外输出创建RDD .

有没有办法处理包含Spark中多个文件的gzip压缩文件?

UPDATE

使用回答中给出的方法从Spark中的压缩读取整个文本文件我能够运行,但这种方法似乎不适合大型tar.gz存档(> 200 mb压缩),因为应用程序扼流圈大型存档大小.由于我正在处理的一些档案在压缩后达到了2 GB的大小,我想知道是否有一些有效的方法来处理这个问题.

我试图避免提取档案然后合并文件,因为这将是耗时的.

gzip scala apache-spark rdd

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

将spark数据帧写入镶木地板格式时出现内存不足错误

我正在尝试从数据库中查询数据,对其进行一些转换,并在hdfs上以镶木地板格式保存新数据.

由于数据库查询返回大量行,因此我将批量获取数据并在每个传入的批处理上运行上述过程.

更新2:批处理逻辑是:

import scala.collection.JavaConverters._

import org.apache.spark.SparkContext
import org.apache.spark.sql.SQLContext
import org.apache.spark.sql.Row
import org.apache.spark.sql.types.{StructType, StructField, StringType}

class Batch(rows: List[String], 
            sqlContext: SQLContext) {

      // The actual schema has around 60 fields
      val schema = Array("name", "age", "address").map(field =>
                       StructField(field, StringType, true)
                   )

      val transformedRows = rows.map(rows => {

              // transformation logic (returns Array[Array[String]] type)

          }).map(row => Row.fromSeq(row.toSeq))

      val dataframe = sqlContext.createDataFrame(transformedRows.asJava, schema)

}

val sparkConf = new sparkConf().setAppName("Spark App")
val sparkContext = new SparkContext(sparkConf)
val sqlContext = new SQLContext(sparkContext)

// Code …
Run Code Online (Sandbox Code Playgroud)

java scala apache-spark parquet

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

将scala数组转换为项目计数的Map

我正在寻找一种将scala数组转换为包含数组中项目频率的映射的简洁方法.

例如.:

给定一个数组:

val arr = Array("one", "one", "two", "three", "one", "three")
Run Code Online (Sandbox Code Playgroud)

我想要一张地图:

Map("one" -> 3, "two" -> 1, "three" -> 2)
Run Code Online (Sandbox Code Playgroud)

我可以通过写一个函数来做到这一点

import scala.collection.mutable

def counter[T](arr: Array[T]) = {
  val temp = mutable.Map[T, Int]()
  for (i <- arr) {
    if (temp.contains(i)) temp(i) += 1
    else temp(i) = 1
  }
  temp
}

counter(arr)
Run Code Online (Sandbox Code Playgroud)

我想知道这是否可以更有效地完成.

arrays scala

0
推荐指数
2
解决办法
2301
查看次数

标签 统计

apache-spark ×3

scala ×3

arrays ×1

gzip ×1

homebrew ×1

java ×1

linux ×1

parquet ×1

pip ×1

python ×1

r ×1

rdd ×1

rpy2 ×1