我需要从镶木地板文件中查询列名完全不一致的地方。为了解决这个问题并确保我的模型能够准确获取预期的数据,我需要预取'列列表然后应用一些正则表达式模式来限定我需要检索哪些列。在伪代码中:
PrefetchList = sqlContext.read.parquet(my_parquet_file).schema.fields
# Insert variable statements to check/qualify the columns against rules here
dfQualified = SELECT [PrefetchList] from parquet;
我已经四处寻找,看看这是否可以实现,但没有取得任何成功。如果这在语法上是正确的(或关闭),或者如果有人有其他建议,我愿意接受。
由于
答案 0 :(得分:1)
您可以使用<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
<header class="header">
<img src="header.jpg" style="max-width:1848px; margin-right:auto;margin-left:auto;" alt="">
</header>
<header class="mobile-header">
<img src="header.jpg" style="width:100%;max-width:1848px; margin-right:auto;margin-left:auto;" alt="">
</header>
<div class="holygrail-body">
<span class="hamburger" style="font-size:30px;cursor:pointer" onclick="openNav()">☰ Menu</span>
<div id="mySidenav" class="sidenav">
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">New Items</a></li>
<li><a href="#">Information Page</a></li>
<li><a href="#">Information Page</a></li>
<li><a href="#">Information Page</a></li>
<li><a href="#">Information Page</a></li>
<li><a href="#">Information Page</a></li>
<li><a href="#">Information Page</a></li>
<li><a href="#">Information Page</a></li>
<li><a href="#">Information Page</a></li>
</ul>
</div>
<div class="content">
<h1>Tessssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssst</h1>
</div>
<ul class="nav">
<li><a href="#">Home</a></li>
<li><a href="#">New Items</a></li>
<li><a href="#">Information Page</a></li>
<li><a href="#">Information Page</a></li>
<li><a href="#">Information Page</a></li>
<li><a href="#">Information Page</a></li>
<li><a href="#">Information Page</a></li>
<li><a href="#">Information Page</a></li>
<li><a href="#">Information Page</a></li>
<li><a href="#">Information Page</a></li>
<li><a href="#">Information Page</a></li>
</ul>
</div>
<footer class="footer">©2017</footer>
方法,但也可以使用schema
方法。
请注意,spark中的select方法有点奇怪,它被定义为.columns
,所以你不能传回def
select(col: String, cols: String*)
,你必须使用select(fields:_*)
这是一种善意的丑陋的,但幸运的是有df.select(fields.head, fields.tail:_*)
作为替代。所以下面这个会有效。它只需要以'user'开头的列
selectExpr(exprs: String*)
这当然假设fields = df.columns.filter(_.matches("^user.+")) // BYO regexp
df.selectExpr(fields:_*)
包含您的数据框,加载了df
。