草庐IT

spark-hive

全部标签

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使用特定的编解

sql - 如何在 HIVE 中使用 "in"和 "having"子句?

我的数据是这样的:col1col2col3AB3AB1AB2CB1我想获取所有包含col3某些行的col1和col2的唯一组。比如,所有包含“2”的col1和col2组。我想做这样的事情:selectcol1,col2fromsometablegroupbycol1,col2havingcol3=1andcol3=2但我希望它只返回在col3中同时具有1和2实例的组。所以,查询后的结果应该是这样的:col1col2AB我如何在HIVE中表达它?谢谢。 最佳答案 我不知道为什么其他人删除了正确然后几乎正确的答案,但我会备份他们的答案。

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

regex - Hive:在字符的第一次出现和最后一次出现之间提取字符串

我有一个Hive表列,其中的字符串由“-”分隔,我需要提取第一次和最后一次出现的“-”之间的字符串+-----------------+|col1|+-----------------+|abc-123-na-00-sf||123-abc-01-sd||123-abcd-sd|+-----------------+Requiredoutput:+-----------+|col1|+-----------+|123-na-00||abc-01||abcd|+-----------+请建议一些正则表达式来提取所需的输出。谢谢 最佳答案

sorting - sort_array 按不同列排序,Hive

我有两列,一列是产品,一列是购买日期。我可以通过应用sort_array(dates)函数对日期进行排序,但我希望能够在购买日期之前对sort_array(products)进行排序。有没有办法在Hive中做到这一点?表名是ClientIDProductDate100Shampoo2016-01-02101Book2016-02-04100Conditioner2015-12-31101Bookmark2016-07-10100Cream2016-02-12101Book22016-01-03然后,为每个客户获取一行:selectclientID,COLLECT_LIST(Produc

sql - 多列和多行的 Hive/SQL 计数出现次数

我正在寻找一种计算出现次数的智能方法。这是一个例子:UserIDCityIDCountryIDTagID1000001305100001130610000022071000002408100001140610000214051000021206我想做什么:我想按列计算每个用户值的出现次数。最后,我想要一个表格来显示有多少用户具有不同的特征。结果应该看起来像这样-或多或少Different_CityIDDifferent_CountryIDsDifferent_TagIDs132解释:Different_CityIDs:仅UserID100000具有不同的CityIDDifferent_