小编Ram*_*jan的帖子

无法读取Apache Zeppelin 0.8的csv文件

我目前正在使用Apache Zeppelin 0.8.我试着像这样加载一个csv文件:

val df = spark.read.option("header", "true").option("inferSchema", "true").csv("/path/to/csv/name.csv")
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

val df = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/path/to/csv/name.csv")
Run Code Online (Sandbox Code Playgroud)

但是,它无法打印出以下内容:

org.apache.spark.SparkException:作业因阶段失败而中止:阶段2.0中的任务0失败1次,最近失败:阶段2.0中丢失的任务0.0(TID 2,localhost,执行器驱动程序):java.lang.NoSuchMethodError: org.apache.hadoop.fs.FileSystem $ Statistics.getThreadStatistics()Lorg /阿帕奇/的Hadoop/FS /文件系统$ $统计统计局数据;

注意: 问题解决 如果我使用zeppelin-env.sh中的SPARK_HOME env变量为Spark指定我自己的构建.但是,我仍然想要一个解决方案,这不需要我这样做,因为我有一些其他库不能与该版本的Spark一起使用.

csv apache-spark apache-zeppelin

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

Pyspark:将列中的json爆炸为多列

数据看起来像这样 -

+-----------+-----------+-----------------------------+
|         id|      point|                         data|
+-----------------------------------------------------+
|        abc|          6|{"key1":"124", "key2": "345"}|
|        dfl|          7|{"key1":"777", "key2": "888"}|
|        4bd|          6|{"key1":"111", "key2": "788"}|
Run Code Online (Sandbox Code Playgroud)

我试图将其分解为以下格式.

+-----------+-----------+-----------+-----------+
|         id|      point|       key1|       key2|
+------------------------------------------------
|        abc|          6|        124|        345|
|        dfl|          7|        777|        888|
|        4bd|          6|        111|        788|
Run Code Online (Sandbox Code Playgroud)

explode函数将数据框分解为多行.但这不是理想的解决方案.

注意:此解决方案不能回答我的问题. PySpark在列中"爆炸"字典

python apache-spark apache-spark-sql pyspark

10
推荐指数
2
解决办法
6676
查看次数

找不到数据源:com.mongodb.spark.sql.DefaultSource

我正在尝试将 spark (pyspark) 连接到 mongodb,如下所示:

conf = SparkConf()
conf.set('spark.mongodb.input.uri', default_mongo_uri)
conf.set('spark.mongodb.output.uri', default_mongo_uri)
sc = SparkContext(conf=conf)
sqlContext = SQLContext(sc)
spark = SparkSession \
    .builder \
    .appName("my-app") \
    .config("spark.mongodb.input.uri", default_mongo_uri) \
    .config("spark.mongodb.output.uri", default_mongo_uri) \
    .getOrCreate()
Run Code Online (Sandbox Code Playgroud)

但是当我执行以下操作时:

users = spark.read.format("com.mongodb.spark.sql.DefaultSource") \
        .option("uri", '{uri}.{col}'.format(uri=mongo_uri, col='users')).load()
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

java.lang.ClassNotFoundException:找不到数据源:com.mongodb.spark.sql.DefaultSource

我从 pyspark shell 做了同样的事情,我能够检索数据。这是我运行的命令:

pyspark --conf "spark.mongodb.input.uri=mongodb_uri" --conf "spark.mongodb.output.uri=mongodburi" --packages org.mongodb.spark:mongo-spark-connector_2.11:2.2.2
Run Code Online (Sandbox Code Playgroud)

但是在这里我们可以选择指定我们需要使用的包。但是独立的应用程序和脚本呢?我如何在那里配置 mongo-spark-connector。

有任何想法吗?

mongodb apache-spark pyspark

8
推荐指数
3
解决办法
6983
查看次数

Spark保存(写入)实木复合地板仅一个文件

如果我写

dataFrame.write.format("parquet").mode("append").save("temp.parquet")
Run Code Online (Sandbox Code Playgroud)

在temp.parquet文件夹中,我得到的文件编号与行号相同

我想我对镶木地板不是很了解,但这很自然吗?

scala apache-spark parquet

8
推荐指数
3
解决办法
6470
查看次数

Spark/Yarn:HDFS上不存在文件

我在AWS上有一个Hadoop/Yarn集群设置,我有一个主服务器和3个从服务器.我已经验证我在端口50070和8088上运行了3个活动节点.我在客户端部署模式下测试了一个spark作业,一切正常.

当我尝试用火花提交工作时./spark-2.1.1-bin-hadoop2.7/bin/spark-submit --master yarn --deploy-mode cluster ip.py.我收到以下错误.

诊断:文件不存在:hdfs://ec2-54-153-50-11.us-west-1.compute.amazonaws.com:9000/user/ubuntu/.sparkStaging/application_1495996836198_0003/__ spark_libs__1200479165381142167.zip

java.io.FileNotFoundException:文件不存在:
hdfs://ec2-54-153-50-11.us-west 1.compute.amazonaws.com:9000/user/ubuntu/.sparkStaging/application_1495996836198_0003/__spark_libs__1200479165381142167.zip

17/05/28 18:58:32 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
17/05/28 18:58:33 INFO client.RMProxy: Connecting to ResourceManager at ec2-54-153-50-11.us-west-1.compute.amazonaws.com/172.31.5.235:8032
17/05/28 18:58:34 INFO yarn.Client: Requesting a new application from cluster with 3 NodeManagers
17/05/28 18:58:34 INFO yarn.Client: Verifying our application has not requested more than the maximum memory capability of the cluster (8192 MB per container)
17/05/28 18:58:34 INFO yarn.Client: …
Run Code Online (Sandbox Code Playgroud)

hadoop hadoop-yarn apache-spark hadoop2 pyspark

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

在Spark Scala应用程序的同一数据框中,将日期列添加到日期列

我有一个dataframedf,columns ("id", "current_date", "days")我正在尝试将" days" 添加到" current_date"并使用spark scala函数创建一个dataframe新的column名为" new_date"的新函数date_add()

val newDF = df.withColumn("new_Date", date_add(df("current_date"), df("days").cast("Int")))
Run Code Online (Sandbox Code Playgroud)

但看起来该函数date_add只接受Int值而不接受columns.在这种情况下如何获得所需的输出?我可以使用任何替代功能来获得所需的输出吗?

spark版本:1.6.0 scala版本:2.10.6

scala dateadd dataframe apache-spark

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

Spark - csv读取选项

我正在使用spark 2.1并试图读取csv文件.

compile group: 'org.scala-lang', name: 'scala-library', version: '2.11.1'
compile group: 'org.apache.spark', name: 'spark-core_2.11', version: '2.1.0'
Run Code Online (Sandbox Code Playgroud)

这是我的代码.

import java.io.{BufferedWriter, File, FileWriter}
import java.sql.{Connection, DriverManager}
import net.sf.log4jdbc.sql.jdbcapi.ConnectionSpy
import org.apache.spark.sql.{DataFrame, SparkSession, Column, SQLContext}
import org.apache.spark.sql.functions._
import org.postgresql.jdbc.PgConnection

spark.read
    .option("charset", "utf-8")
    .option("header", "true")
    .option("quote", "\"")
    .option("delimiter", ",")
    .csv(...)
Run Code Online (Sandbox Code Playgroud)

它运作良好.问题是spark read(DataFrameReader)选项键与reference(link)不同.参考说我应该使用'encoding'进行编码但不能正常工作,但charset运行良好.参考是错的吗?

apache-spark

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

错误:无法找到或加载主类 org.apache.spark.launcher.Main

如果有人能帮我解决以下路径问题,我将不胜感激?我非常怀疑这与缺少路径设置有关,但不知道如何解决。

rxie@ubuntu:~/Downloads/spark$ echo $PATH
/usr/bin/java:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/rxie/Downloads/s                                                                                  park:/home/rxie/Downloads/spark/bin:/usr/bin/java
rxie@ubuntu:~/Downloads/spark$ pyspark
Run Code Online (Sandbox Code Playgroud)

错误:无法找到或加载主类 org.apache.spark.launcher.Main

rxie@ubuntu:~/Downloads/spark$ spark-shell

错误:无法找到或加载主类 org.apache.spark.launcher.Main

rxie@ubuntu:~/Downloads/spark$ pwd /home/rxie/Downloads/spark

rxie@ubuntu:~/Downloads/spark$ ls
bin  conf  data  examples  jars  kubernetes  licenses  R  yarn
Run Code Online (Sandbox Code Playgroud)

使用 PATH 更新:

rxie@ubuntu:~$ echo $PATH
/home/rxie/Downloads/spark:/usr/bin/java:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin
Run Code Online (Sandbox Code Playgroud)

apache-spark

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

使用 SQlcontext 在 Spark 中加载 csv 时出现错误

在此输入图像描述

sparkDF = sqlContext.read.format('com.databricks.spark.csv').options(header='true').load('PR_DATA_35.csv')
Run Code Online (Sandbox Code Playgroud)

错误_ - - - - - - - - - - - - - - - - - - - - - - - - - -------------------------------------------------- -------------------------------------------------- Py4JJavaError () 中的回溯(最近一次调用最后一次)----> 1 SparkDF = sqlContext.read.format('com.databricks.spark.csv') .options(header='true').load('PR_DATA_35.csv ')

/home/ec2-user/spark/python/pyspark/sql/readwriter.pyc in load(self,path,format,schema,**options) 157 self.options(**options) 158 if isinstance(path,basestring) : --> 159 return self._df(self._jreader.load(path)) 160 elif 路径不是 None: 161 if type(path) != list:

/home/ec2-user/spark/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py调用中(self,*args) 1131 答案 = self.gateway_client.send_command(命令) 1132 return_value = get_return_value( -> 1133 答案, self.gateway_client, self.target_id, self.name) …

python amazon-web-services apache-spark pyspark databricks

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

嵌套在表达式中时不支持生成器

我必须做简单的删除“。” 在进行字数统计之前从字符串中提取。它在两个语句中工作正常,但在编写单个语句时给我以下错误。我在做蠢事吗?或者这是一个改进的空间?

错误: org.apache.spark.sql.AnalysisException:当它嵌套在表达式中时不支持生成器,但得到:regexp_replace(explode(split(CAST(value AS STRING), \s+)), [.]*, );

代码:

import org.apache.spark.sql.functions._
val testString = " I am X. X Works for Y."
val testDF = Seq (testString).toDF
val testDF1 = testDF.select(regexp_replace (explode (split($"value".cast("String"), "\\s+")), "[.]*", ""))
testDF1.show
Run Code Online (Sandbox Code Playgroud)

expression scala nested apache-spark

5
推荐指数
0
解决办法
5065
查看次数