草庐IT

python - 验证字段值的有效方法 Spark

在将数据保存到hdfs之前,我需要验证数据框中的某些列。我想知道在pyspark1.5.2/python2.7中是否有一种优雅有效的方法来做到这一点例如,假设我有以下数据+-----+---+|a|b|+-----+---+|"foo"|123|+-----+---+我想确保列a的每个值不超过3个字符和列b是.我目前的想法是编写一个执行简单if/else的udf,并返回某个值,然后根据这些结果决定是否使作业失败。但是,对于大量数据,我担心它会很慢或者至少是非常繁重的处理。是否已经有一种完善的方法可以在spark中执行此操作?或者是否有任何流行的策略来做到这一点?我自己找不到关于这个主题

hadoop - 在 Spark 中使用哪个设置来指定 `Output` 的压缩?

因此,Spark有文件spark-defaults.xml用于指定哪些设置,包括要使用哪个压缩编解码器以及在哪个阶段(RDD、Shuffle)。大多数设置都可以在应用程序级别进行设置。编辑:conf=SparkConf()conf.set("spark.hadoop.mapred.output.compress","true")conf.set("spark.hadoop.mapred.output.compression.codec","org.apache.hadoop.io.compress.snappy")如何使用spark-defaults.xml告诉Spark使用特定的编解

scala - 将 hdfs 文件加载到 spark 上下文中

我是spark/scala的新手,需要从hdfs加载一个文件到spark。我在hdfs(/newhdfs/abc.txt)中有一个文件,我可以使用hdfsdfs-cat/newhdfs/abc.txt/查看我的文件内容p>我按照以下顺序将文件加载到spark上下文中spark-shell#Itenteredintoscalaconsolewindowscala>importorg.apache.spark._;//Line1scala>valconf=newSparkConf().setMaster("local[*]");scala>valsc=newSparkContext(con

hadoop - 并非所有 Spark Worker 都启动 : SPARK_WORKER_INSTANCES

我的spark-defaults.conf配置是这样的。我的节点有32GbRAM。8个核心。我计划使用16gb和4个worker,每个worker使用1个核心。SPARK_WORKER_MEMORY=16gSPARK_PUBLIC_DNS=vodip-dt-a4d.ula.comcast.netSPARK_WORKER_CORES=4SPARK_WORKER_INSTANCES=4SPARK_DAEMON_MEMORY=1g当我尝试启动master并像这样工作时,只有1个worker正在启动,而我期望有4个worker。start-master.sh--properties-file/

hadoop - Spark集群按顺序向文件中的每一行添加数字

我有一个文件,每行都包含名称,我想按顺序向每一行添加数字。例如,如果一个文件是这样的abcd我要它实现这个a,1b,2c,3d,4我写了这段代码来实现这个vallines=sc.textFile("data.txt")valpair=lines.zipWithIndex().map{case(i,line)=>i.toString+","+line}pair.collect()但是如您所知,Spark将其任务分布在不同的集群中。所以我不确定这是否有效。所以任何人都可以告诉我如何实现这一目标吗?提前致谢。 最佳答案 如果您将运行此代码

hadoop - 如何设置 Spark 作业暂存位置

我的spark作业失败了,因为用户无权访问spark尝试写入暂存或临时数据集的目录。2017-03-1010:25:47,0928ERRORJniCommonfs/client/fileclient/cc/jni_MapRClient.cc:2072Thread:26413mkdirsfailedfor/user/cxpdiprod/.sparkStaging/application_1488190062017_14041,error13Exceptioninthread"main"org.apache.hadoop.security.AccessControlException:Us

java - 在 Spark 中将纯文本文件转换为 Hadoop 序列文件

我现有的项目正在使用Hadoopmap-reduce生成一个具有自定义键和值的XML格式的序列文件。通过一次从输入源读取一行生成XML值,并实现RecordReader以从纯文本返回XML格式的下一个值。例如输入源文件有3行(第一行是标题,其余行是实际数据)id|name|value1|Vijay|10002|Gaurav|20003|Ashok|3000贴图方法序列文件有如下数据:FeedInstanceKey{feedInstanceId=1000,entity=bars}1Vijay1000FeedInstanceKey{feedInstanceId=1000,entity=ba

scala - 如何使用配置单元上下文有效地查询 spark 中的配置单元表?

我有一个包含时间序列数据的1.6THive表。我正在使用Hive1.2.1和scala中的Spark1.6.1。以下是我在代码中的查询。但我总是遇到Java内存不足错误。valsid_data_df=hiveContext.sql(s"SELECTtime,total_field,sid,year,dateFROMtablenameWHEREsid='$stationId'ORDERBYtimeLIMIT4320000")通过一次从配置单元表中迭代选择几条记录,我试图在结果dataframe上做一个滑动窗口我有一个由4个节点组成的集群,具有122GB内存和44个vCore。我正在使用4

scala - 使用 spark 在 hive 中流式传输数据存储

我正在创建一个应用程序,在其中获取流式数据,这些数据进入kafka,然后在spark上。使用数据,应用一些登录,然后将处理后的数据保存到配置单元中。数据速度非常快。我在1分钟内获得50K条记录。Spark流中有1分钟的窗口,它处理数据并将数据保存在配置单元中。我的问题是生产前瞻性架构可以吗?如果是,我如何将流数据保存到配置单元中。我正在做的是,创建1分钟窗口数据的数据框,并使用将其保存在配置单元中results.write.mode(org.apache.spark.sql.SaveMode.Append).insertInto("stocks")我还没有创建管道。可以吗,还是我必须修

scala - 在 Apache Spark 中按列分区到 S3

有我们想要从具有JSON的S3读取文件的用例。然后,基于特定的JSON节点值,我们希望对数据进行分组并将其写入S3。我能够读取数据,但找不到关于如何根据JSONkey对数据进行分区然后上传到S3的好例子。任何人都可以提供任何示例或指向可以帮助我处理此用例的教程吗?创建数据框后我得到了我的数据模式:root|--customer:struct(nullable=true)||--customerId:string(nullable=true)|--experiment:string(nullable=true)|--expiryTime:long(nullable=true)|--par